@yuuvis/client-shell-core 2.0.4 → 2.0.6

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.
@@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material/dialog';
3
3
  import { MatIconRegistry } from '@angular/material/icon';
4
4
  import { DomSanitizer } from '@angular/platform-browser';
5
5
  import { ApiBase, BaseObjectTypeField, ConfigService, DmsService, SystemService, SystemType, TranslateService, UserService, Utils } from '@yuuvis/client-core';
6
- import { BehaviorSubject, debounceTime, filter, firstValueFrom, fromEvent, map, of, ReplaySubject, tap } from 'rxjs';
6
+ import { BehaviorSubject, debounceTime, filter, first, firstValueFrom, fromEvent, map, of, ReplaySubject, tap } from 'rxjs';
7
7
  import { CLIENT_SHELL_ASSETS } from '../../client-shell.assets';
8
8
  import { SHELL_CONFIG_TYPES } from '../shell-config/shell-config.const';
9
9
  import { ShellConfigService } from '../shell-config/shell-config.service';
@@ -336,7 +336,7 @@ export class ShellService {
336
336
  })));
337
337
  }
338
338
  #registerObjectTypeIcons(ids) {
339
- const sub = this.#system.system$.subscribe(() => {
339
+ this.#system.system$.pipe(first()).subscribe(() => {
340
340
  ids.forEach((id) => {
341
341
  // split technical name e.g. 'system:document' and use the first part as namespace
342
342
  const idTokens = id.split(':');
@@ -345,9 +345,6 @@ export class ShellService {
345
345
  this.#iconRegistry.addSvgIconInNamespace(idTokens[0], idTokens[1], this.#sanitizer.bypassSecurityTrustResourceUrl(uri));
346
346
  }
347
347
  });
348
- sub.unsubscribe();
349
- // const config = (this.#iconRegistry as any)._svgIconConfigs;
350
- // console.log({ config });
351
348
  });
352
349
  }
353
350
  _init() { }
@@ -360,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
360
357
  providedIn: 'root'
361
358
  }]
362
359
  }] });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlL3NyYy9saWIvc2VydmljZXMvc2hlbGwvc2hlbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLFVBQVUsRUFFVixhQUFhLEVBQ2IsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsS0FBSyxFQUVOLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFDLFNB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QUFDOytHQXhYQyxZQUFZO21IQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIEFwaUJhc2UsXG4gIEJhc2VPYmplY3RUeXBlRmllbGQsXG4gIENvbmZpZ1NlcnZpY2UsXG4gIERtc09iamVjdCxcbiAgRG1zU2VydmljZSxcbiAgT2JqZWN0Q3JlYXRlRmxhdm9yLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBTeXN0ZW1UeXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHMsXG4gIFl1dlVzZXJcbn0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdFZhbHVlRnJvbSwgZnJvbUV2ZW50LCBtYXAsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENMSUVOVF9TSEVMTF9BU1NFVFMgfSBmcm9tICcuLi8uLi9jbGllbnQtc2hlbGwuYXNzZXRzJztcbmltcG9ydCB7IEFwcCwgQXBwU2NoZW1hLCBBcHBTY2hlbWFGbGF2b3IsIENsaWVudFNoZWxsQ29uZmlnLCBHbG9iYWxTaG9ydGN1dCwgT2JqZWN0Rmxhdm9yLCBTaGVsbEFwcFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vY2xpZW50LXNoZWxsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaWxlRXh0ZW5zaW9uIH0gZnJvbSAnLi4vLi4vdGlsZS1leHRlbnNpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNIRUxMX0NPTkZJR19UWVBFUyB9IGZyb20gJy4uL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuY29uc3QnO1xuaW1wb3J0IHsgQ2xpZW50U2hlbGxUeXBlLCBTaGVsbENvbmZpZyB9IGZyb20gJy4uL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNoZWxsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsU2VydmljZSB7XG4gICNkbXNTZXJ2aWNlID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuICAjZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gICNzeXN0ZW0gPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gICN1c2VyU2VydmljZSA9IGluamVjdChVc2VyU2VydmljZSk7XG4gIC8vIFRPRE86IE5lZWQgb3JpZ25hbCBNYXRJY29uUmVnaXN0cnkgdG8gI3JlZ2lzdGVyT2JqZWN0VHlwZUljb25zLCBvdGhlcndpc2UgaWNvbnMgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQgaW4gdGhlIG5hbWVzcGFjZVxuICAvLyAjaWNvblJlZ2lzdHJ5ID0gaW5qZWN0KFl1dk1hdEljb25SZWdpc3RyeSk7XG4gICNpY29uUmVnaXN0cnkgPSBpbmplY3QoTWF0SWNvblJlZ2lzdHJ5KTtcbiAgI3NoZWxsQ29uZmlnID0gaW5qZWN0KFNoZWxsQ29uZmlnU2VydmljZSk7XG4gICNjb25maWdTZXJ2aWNlID0gaW5qZWN0KENvbmZpZ1NlcnZpY2UpO1xuICAjc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gICNET0NVTUVOVCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgX2J1c3lDb3VudCA9IDA7XG4gIHByaXZhdGUgaXNCdXN5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBpc0J1c3kkID0gdGhpcy5pc0J1c3lTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpO1xuXG4gICNhcHBTZXR0aW5nczogUmVjb3JkPHN0cmluZywgU2hlbGxBcHBTZXR0aW5ncz4gPSB7fTtcbiAgI2FwcFNldHRpbmdzU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFNoZWxsQXBwU2V0dGluZ3NbXT4oKTtcbiAgYXBwU2V0dGluZ3MkID0gdGhpcy4jYXBwU2V0dGluZ3NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpO1xuXG4gICNhcHBTY2hlbWF0YTogQXBwU2NoZW1hW10gPSBbXTtcbiAgYXBwQmFzZVJvdXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICNkZWZhdWx0U2hlbGxDb25maWc6IENsaWVudFNoZWxsQ29uZmlnID0ge1xuICAgIGFwcEljb246IENMSUVOVF9TSEVMTF9BU1NFVFMuYXBwSWNvbixcbiAgICBzaGVsbEljb25OYW1lc3BhY2U6IENMSUVOVF9TSEVMTF9BU1NFVFMuc2hlbGxJY29uTmFtZXNwYWNlXG4gIH07XG4gIHNoZWxsQ29uZmlnID0gc2lnbmFsPENsaWVudFNoZWxsQ29uZmlnPih0aGlzLiNkZWZhdWx0U2hlbGxDb25maWcpO1xuXG4gIC8qKiBUT0RPOiBpbXBsZW1lbnQgdGhpcyBmZWF0dXJlID8/Pz9cbiAgICogR2xvYmFsIHNob3J0Y3V0cyBhcmUgY2FwdHVyZWQgYnkgdGhlIHNoZWxsIHRvIHByb3ZpZGUgYSBjb25zaXN0ZW50IGV4cGVyaWVuY2VcbiAgICogYWNjcm9zcyBhbGwgYXBwcy4gU2VhcmNoIGlzIG9uZSBleGFtcGxlLiBBcHBzIHNob3VsZCBub3QgZGVmaW5lIHRoZWlyIG93biBzaG91cnRjdXRzXG4gICAqIGZvciBzZWFyY2guIEluc3RlYWQgdGhleSBzaG91bGQgc3Vic2NyaWJlIHRvIHRoZSBnbG9iYWwgc2hvcnRjdXRzIGFuZCBpbml0aWFsaXplIHRoZWlyXG4gICAqIHNlYXJjaCBiYXNlZCBvbiB0aGUgZ2xvYmFsIHNlYXJjaCBzaG9ydGN1dC5cbiAgICovXG4gIGdsb2JhbFNob3J0Y3V0cyQ6IE9ic2VydmFibGU8R2xvYmFsU2hvcnRjdXQ+ID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpLnBpcGUoXG4gICAgbWFwKChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAvLyBnbG9iYWwgc2hvcnRjdXQgZm9yIHNlYXJjaFxuICAgICAgLy8gaWYgKGUuY3RybEtleSAmJiBlLmNvZGUgPT09ICdLZXlGJykge1xuICAgICAgLy8gICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAvLyAgIHJldHVybiBHbG9iYWxTaG9ydGN1dC5zZWFyY2g7XG4gICAgICAvLyB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pLFxuICAgIGZpbHRlcigoczogR2xvYmFsU2hvcnRjdXQgfCB1bmRlZmluZWQpID0+IHMgIT09IHVuZGVmaW5lZCksXG4gICAgbWFwKChzKSA9PiBzIGFzIEdsb2JhbFNob3J0Y3V0KVxuICApO1xuXG4gIHByaXZhdGUgX2V4dGVuc2lvbnM6IFJlY29yZDxzdHJpbmcsIFRpbGVFeHRlbnNpb24+ID0ge307XG4gIHByaXZhdGUgX29iamVjdEZsYXZvcnM6IE9iamVjdEZsYXZvcltdID0gW107XG4gIHByaXZhdGUgX29iamVjdENyZWF0ZUZsYXZvcnM6IE9iamVjdENyZWF0ZUZsYXZvcltdID0gW107XG5cbiAgcGlja0ZpbGUoKTogT2JzZXJ2YWJsZTxGaWxlIHwgbnVsbD4ge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy4jRE9DVU1FTlQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBpbnB1dC50eXBlID0gJ2ZpbGUnO1xuICAgIGlucHV0LmNsaWNrKCk7XG4gICAgcmV0dXJuIGZyb21FdmVudChpbnB1dCwgJ2NoYW5nZScpLnBpcGUoXG4gICAgICBtYXAoKGU6IEV2ZW50KSA9PiAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM/LlswXSB8fCBudWxsKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlucHV0LnJlbW92ZSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2V0U2hlbGxDb25maWcoY3NjOiBDbGllbnRTaGVsbENvbmZpZykge1xuICAgIHRoaXMuc2hlbGxDb25maWcudXBkYXRlKChzYykgPT4gKHtcbiAgICAgIGFwcEljb246IGNzYy5hcHBJY29uID8/IHNjLmFwcEljb24sXG4gICAgICBzaGVsbEljb25OYW1lc3BhY2U6IGNzYy5zaGVsbEljb25OYW1lc3BhY2UgPz8gc2Muc2hlbGxJY29uTmFtZXNwYWNlXG4gICAgfSkpO1xuICB9XG5cbiAgc2V0QXBwQmFzZVJvdXRlcyhhcHBzOiBBcHBbXSkge1xuICAgIGFwcHMuZm9yRWFjaCgoYSkgPT4gKHRoaXMuYXBwQmFzZVJvdXRlc1thLmlkXSA9IGEucGF0aCB8fCAnJykpO1xuICB9XG5cbiAgcmVnaXN0ZXJBcHAoc2NoZW1hOiBBcHBTY2hlbWEpIHtcbiAgICB0aGlzLiNhcHBTY2hlbWF0YS5wdXNoKHNjaGVtYSk7XG4gIH1cblxuICBnZXRSZWdpc3RlcmVkQXBwKGlkOiBzdHJpbmcpOiBBcHBTY2hlbWEgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNhcHBTY2hlbWF0YS5maW5kKChhKSA9PiBhLmlkID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgc2V0dGluZ3MgZm9yIGFwcHMgdG8gaG9vayBpbnRvIHNoZWxsIHNldHRpbmdzIHBhZ2UuXG4gICAqIFRoZXNlIGV4cG9zZWQgc2V0dGluZ3Mgd2lsbCBiZSBzYXZlZCBpbiB0aGUgdXNlcnMgc2V0dGluZ3Mgb24gdGhlIGJhY2tlbmQuXG4gICAqIEBwYXJhbSBhcHBJRCBJRCBvZiB0aGUgYXBwIHRoYXQgZXhwb3NlcyB0aGUgc2V0dGluZ3NcbiAgICogQHBhcmFtIGNmZyBTaGVsbEFwcFNldHRpbmdzIG9iamVjdCBjb250YWluaW5nIHRoZSBzZXR0aW5nc1xuICAgKi9cbiAgcmVnaXN0ZXJBcHBTZXR0aW5ncyhhcHBJRDogc3RyaW5nLCBjZmc6IFNoZWxsQXBwU2V0dGluZ3MpIHtcbiAgICB0aGlzLiNhcHBTZXR0aW5nc1thcHBJRF0gPSBjZmc7XG4gICAgdGhpcy4jYXBwU2V0dGluZ3NTdWJqZWN0Lm5leHQodGhpcy4jZ2V0QXBwU2V0dGluZ3MoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBwZXJzaXN0ZWQgc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgYXBwXG4gICAqIEBwYXJhbSBhcHBJRCBJRCBvZiB0aGUgYXBwIHRvIGxvYWQgdGhlIHNldHRpbmdzIGZvclxuICAgKi9cbiAgdXNlcnNBcHBTZXR0aW5ncyQoYXBwSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2hlbGxBcHBTZXR0aW5ncyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLiN1c2VyU2VydmljZS51c2VyJC5waXBlKFxuICAgICAgbWFwKCh1OiBZdXZVc2VyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgICAgIHJldHVybiB1ICYmIHUudXNlclNldHRpbmdzLmNsaWVudEFwcFNldHRpbmdzID8gdS51c2VyU2V0dGluZ3MuY2xpZW50QXBwU2V0dGluZ3NbYXBwSURdIDogdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2F2ZVVzZXJzQXBwU2V0dGluZ3MoYXBwSUQ6IHN0cmluZywgc2V0dGluZ3M6IFNoZWxsQXBwU2V0dGluZ3MpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLiN1c2VyU2VydmljZS5zYXZlVXNlclNldHRpbmdzKHsgY2xpZW50QXBwU2V0dGluZ3M6IHsgW2FwcElEXTogc2V0dGluZ3MgfSB9KTtcbiAgfVxuXG4gICNnZXRBcHBTZXR0aW5ncygpOiBTaGVsbEFwcFNldHRpbmdzW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLiNhcHBTZXR0aW5ncylcbiAgICAgIC5tYXAoKGtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgICBhcHBJRDogdGhpcy4jYXBwU2V0dGluZ3Nba2V5XS5hcHBJRCxcbiAgICAgICAgbGFiZWw6IHRoaXMuI2FwcFNldHRpbmdzW2tleV0ubGFiZWwsXG4gICAgICAgIHByb3BlcnRpZXM6IHRoaXMuI2FwcFNldHRpbmdzW2tleV0ucHJvcGVydGllc1xuICAgICAgfSkpXG4gICAgICAuc29ydCgpO1xuICB9XG5cbiAgYWRkQnVzeSgpIHtcbiAgICBpZiAodGhpcy5fYnVzeUNvdW50ID09PSAwKSB7XG4gICAgICB0aGlzLmlzQnVzeVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5fYnVzeUNvdW50Kys7XG4gIH1cbiAgcmVtb3ZlQnVzeSgpIHtcbiAgICB0aGlzLl9idXN5Q291bnQtLTtcbiAgICBpZiAodGhpcy5fYnVzeUNvdW50ID09PSAwKSB7XG4gICAgICB0aGlzLmlzQnVzeVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3NlT2JqZWN0Q3JlYXRlRmxhdm9ycyhmbGF2b3JzOiBPYmplY3RDcmVhdGVGbGF2b3JbXSkge1xuICAgIGZsYXZvcnMuZm9yRWFjaCgoZmxhdm9yOiBPYmplY3RDcmVhdGVGbGF2b3IpID0+IHtcbiAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX29iamVjdENyZWF0ZUZsYXZvcnMuZmluZEluZGV4KChmKSA9PiBmLmlkID09PSBmbGF2b3IuaWQpO1xuICAgICAgaWYgKGlkeCA9PT0gLTEpIHRoaXMuX29iamVjdENyZWF0ZUZsYXZvcnMucHVzaChmbGF2b3IpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uY2VhbE9iamVjdENyZWF0ZUZsYXZvcnMoZmxhdm9yczogT2JqZWN0Q3JlYXRlRmxhdm9yW10pIHtcbiAgICBjb25zdCBmaWQgPSBmbGF2b3JzLm1hcCgoZikgPT4gZi5pZCk7XG4gICAgdGhpcy5fb2JqZWN0Q3JlYXRlRmxhdm9ycyA9IHRoaXMuX29iamVjdENyZWF0ZUZsYXZvcnMuZmlsdGVyKChmKSA9PiAhZmlkLmluY2x1ZGVzKGYuaWQpKTtcbiAgfVxuXG4gIGdldE9iamVjdENyZWF0ZUZsYXZvcnMoKTogT2JqZWN0Q3JlYXRlRmxhdm9yW10ge1xuICAgIHJldHVybiB0aGlzLl9vYmplY3RDcmVhdGVGbGF2b3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9zZXMgYSBsaXN0IG9mIG9iamVjdCBmbGF2b3JzIHRvIHRoZSBzaGVsbC5cbiAgICogRmxhdm9ycyBhcmUgYWJsZSB0byBiZSBhcHBsaWVkIHRvIG9iamVjdHMgYW5kIGFkZCBuZXcgbWV0YWRhdGEgcHJvcGVydGllcyB0byB0aGVtLlxuICAgKiBAcGFyYW0gZmxhdm9ycyBBcnJheSBvZiBmbGF2b3JzIHRvIGJlIGV4cG9zZWRcbiAgICogQHBhcmFtIGFwcCBPcHRpb25hbCBJRCBvZiB0aGUgYXBwIHRoYXQgZXhwb3NlcyB0aGUgZmxhdm9ycyAoZGVmYXVsdHMgdG8gJ2dsb2JhbCcgaWYgbm90IHByb3ZpZGVkKVxuICAgKiBAcGFyYW0gb3JpZ2luIE9wdGlvbmFsIG9yaWdpbiBvZiB0aGUgZmxhdm9ycy4gRmxhdm9ycyBjb3VsZCBiZSBhZGRlZCBieSBhcHBzIG9yIGRlcml2ZWRcbiAgICogZnJvbSBhIGNvbmZpZ3VyYXRpb24gKGRlZmF1bHRzIHRvICdhcHAnIGlmIG5vdCBwcm92aWRlZClcbiAgICovXG4gIGV4cG9zZU9iamVjdEZsYXZvcnMoZmxhdm9yczogQXBwU2NoZW1hRmxhdm9yW10sIGFwcCA9ICdnbG9iYWwnLCBvcmlnaW46ICdhcHAnIHwgJ2NvbmZpZycgPSAnYXBwJykge1xuICAgIGZsYXZvcnMuZm9yRWFjaCgoZikgPT4gdGhpcy5leHBvc2VPYmplY3RGbGF2b3IoZiwgYXBwLCBvcmlnaW4pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGV4cG9zZWQgb2JqZWN0IGZsYXZvcnMgZnJvbSB0aGUgc2hlbGwuXG4gICAqIEBwYXJhbSBmbGF2b3JzIEFycmF5IG9mIGZsYXZvcnMgdG8gYmUgY29uY2VhbGVkXG4gICAqL1xuICBjb25jZWFsT2JqZWN0Rmxhdm9ycyhmbGF2b3JzOiBBcHBTY2hlbWFGbGF2b3JbXSwgYXBwID0gJ2dsb2JhbCcpIHtcbiAgICBmbGF2b3JzLmZvckVhY2goKGYpID0+IHRoaXMuY29uY2VhbE9iamVjdEZsYXZvcihmLCBhcHApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvc2VzIGFuIG9iamVjdCBmbGF2b3IgdG8gdGhlIHNoZWxsLiBGbGF2b3JzIGFyZSBhYmxlIHRvIGJlIGFwcGxpZWQgdG8gb2JqZWN0c1xuICAgKiBpbiBvcmRlciB0byBhZGQgYSBuZXcgYXNwZWN0IHRvIHRoZW0uIEFuIG9iamVjdCBjb250YWluaW5nIGFuIGltYWdlIGZvciBleGFtcGxlIGNvdWxkXG4gICAqIGJlIGFkZGVkIGEgZmxhdm9yIG9mICdFWElGIERhdGEnIHRoYXQgd2lsbCBhZGQgdGhlIGNvcnJlc3BvbmRpbmcgU09UIHRvIGl0LiBUaGlzIHdheSB0aGVcbiAgICogb2JqZWN0IGdldHMgbmV3IG1ldGFkYXRhIHByb3BlcnRpZXMuIElmIHN1cHBvcnRlZCwgdGhlc2UgbWV0YWRhdGEgY291bGQgZXZlbiBiZSBleHRyYWN0ZWRcbiAgICogZnJvbSB0aGUgZmlsZSBhbmQgZmlsbGVkIG91dCBhdXRvbWF0aWNhbGx5LlxuICAgKiBAcGFyYW0gZmxhdm9yIFRoZSBmbGF2b3Igb2JqZWN0IHRvIGJlIGV4cG9zZWRcbiAgICogQHBhcmFtIGFwcCBPcHRpb25hbCBJRCBvZiB0aGUgYXBwIHRoYXQgZXhwb3NlcyB0aGUgZmxhdm9yIChkZWZhdWx0cyB0byAnZ2xvYmFsJyBpZiBub3QgcHJvdmlkZWQpXG4gICAqIEBwYXJhbSBvcmlnaW4gT3B0aW9uYWwgb3JpZ2luIG9mIHRoZSBmbGF2b3JzLiBGbGF2b3JzIGNvdWxkIGJlIGFkZGVkIGJ5IGFwcHMgb3IgZGVyaXZlZFxuICAgKiBmcm9tIGEgY29uZmlndXJhdGlvbiAoZGVmYXVsdHMgdG8gJ2FwcCcgaWYgbm90IHByb3ZpZGVkKVxuICAgKi9cbiAgZXhwb3NlT2JqZWN0Rmxhdm9yKGZsYXZvcjogQXBwU2NoZW1hRmxhdm9yLCBhcHAgPSAnZ2xvYmFsJywgb3JpZ2luOiAnYXBwJyB8ICdjb25maWcnID0gJ2FwcCcpIHtcbiAgICBjb25zdCBpZHggPSB0aGlzLl9vYmplY3RGbGF2b3JzLmZpbmRJbmRleCgoZikgPT4gZi5pZCA9PT0gZmxhdm9yLmlkICYmIGYuYXBwID09PSBhcHApO1xuICAgIGlmIChpZHggPT09IC0xKSB0aGlzLl9vYmplY3RGbGF2b3JzLnB1c2goeyAuLi5mbGF2b3IsIGFwcCwgb3JpZ2luIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gZXhwb3NlZCBvYmplY3QgZmxhdm9yIGZyb20gdGhlIHNoZWxsLlxuICAgKiBAcGFyYW0gZmxhdm9yIEZsYXZvciB0byBiZSBjb25jZWFsZWRcbiAgICogQHBhcmFtIGFwcCBPcHRpb25hbCBJRCBvZiB0aGUgYXBwIHRoYXQgZXhwb3NlcyB0aGUgZmxhdm9yIChkZWZhdWx0cyB0byAnZ2xvYmFsJyBpZiBub3QgcHJvdmlkZWQpXG4gICAqL1xuICBjb25jZWFsT2JqZWN0Rmxhdm9yKGZsYXZvcjogQXBwU2NoZW1hRmxhdm9yLCBhcHAgPSAnZ2xvYmFsJykge1xuICAgIHRoaXMuX29iamVjdEZsYXZvcnMgPSB0aGlzLl9vYmplY3RGbGF2b3JzLmZpbHRlcigoZikgPT4gZi5pZCAhPT0gZmxhdm9yLmlkICYmIGYuYXBwICE9PSBhcHApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZWdpc3RlcmVkIG9iamVjdCBmbGF2b3JzXG4gICAqIEBwYXJhbSBhcHAgT3B0aW9uYWwgYXBwIElEIHRoYXQgcmVzdHJpY3RzIHRoZSByZXR1cm5lZCBmbGF2b3JzIHRvIHRoZSBvbmVzXG4gICAqIHByb3ZpZGVkIGJ5IGEgcGFydGljdWxhciBhcHAuIElmIG5vdCBwcm92aWRlZCBhbGwgZmxhdm9ycyBhcmUgcmV0dXJuZWRcbiAgICogQHJldHVybnMgQXJyYXkgb2YgbWF0Y2hpbmcgb2JqZWN0IGZsYXZvcnNcbiAgICovXG4gIGdldE9iamVjdEZsYXZvcnMoYXBwPzogc3RyaW5nKTogT2JqZWN0Rmxhdm9yW10ge1xuICAgIHJldHVybiBhcHAgPyB0aGlzLl9vYmplY3RGbGF2b3JzLmZpbHRlcigob2YpID0+IG9mLmFwcCA9PT0gYXBwKSA6IHRoaXMuX29iamVjdEZsYXZvcnM7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIGFwcGxpY2F0aW9uIG9mIGFuIG9iamVjdCBmbGF2b3IuIElmIHRoZSBmbGF2b3IgaGFzIGFuIGFwcGx5Q29tcG9uZW50XG4gICAqIGRlZmluZWQsIHRoZSBvdmVybGF5IHdpbGwgYmUgb3BlbmVkIHdpdGggdGhlIGNvbXBvbmVudC4gT3RoZXJ3aXNlIHRoZSBmbGF2b3Igd2lsbFxuICAgKiBiZSBhcHBsaWVkIGRpcmVjdGx5IHRvIHRoZSBvYmplY3QuXG4gICAqIEBwYXJhbSBkbXNPYmplY3QgVGhlIG9iamVjdCB0byBhcHBseSB0aGUgZmxhdm9yIHRvXG4gICAqIEBwYXJhbSBmbGF2b3IgVGhlIGZsYXZvciB0byBhcHBseVxuICAgKiBAcGFyYW0gZGF0YSBPcHRpb25hbCBkYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgZmxhdm9yIGNvbXBvbmVudFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdHJ1ZSBpZiB0aGUgZmxhdm9yIHdhcyBhcHBsaWVkIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgdHJpZ2dlckFwcGx5T2JqZWN0Rmxhdm9yKGRtc09iamVjdDogRG1zT2JqZWN0LCBmbGF2b3I6IE9iamVjdEZsYXZvciwgZGF0YT86IGFueSwgYXBwbHlDb21wb25lbnQ/OiBUeXBlPGFueT4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICBjb25zdCBhYyA9IGFwcGx5Q29tcG9uZW50IHx8IGZsYXZvci5hcHBseUNvbXBvbmVudDtcbiAgICAgIGlmIChhYykge1xuICAgICAgICB0aGlzLiNkaWFsb2cub3BlbihhYywge1xuICAgICAgICAgIG1heFdpZHRoOiAnOTB2dycsXG4gICAgICAgICAgbWF4SGVpZ2h0OiAnOTB2aCcsXG4gICAgICAgICAgbWluV2lkdGg6ICc1MHZ3JyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBkbXNPYmplY3QsXG4gICAgICAgICAgICBmbGF2b3IsXG4gICAgICAgICAgICBkYXRhXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc290czogc3RyaW5nW10gPSAoZG1zT2JqZWN0LmRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSBhcyBzdHJpbmdbXSkgfHwgW107XG4gICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHt9O1xuICAgICAgICBkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gPSBbLi4uc290cywgZmxhdm9yLnNvdF07XG4gICAgICAgIHJldHVybiB0aGlzLiNkbXNTZXJ2aWNlLnVwZGF0ZURtc09iamVjdChkbXNPYmplY3Q/LmlkLCBkYXRhKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHJldHVybiBvZihmYWxzZSk7XG4gIH1cblxuICByZW1vdmVPYmplY3RGbGF2b3IoZG1zT2JqZWN0OiBEbXNPYmplY3QsIGZsYXZvcjogT2JqZWN0Rmxhdm9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdOiAoZG1zT2JqZWN0LmRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSBhcyBzdHJpbmdbXSkuZmlsdGVyKFxuICAgICAgICAoc290OiBzdHJpbmcpID0+IHNvdCAhPT0gZmxhdm9yLnNvdFxuICAgICAgKVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBkYXRlRG1zT2JqZWN0KGRtc09iamVjdC5pZCwgZGF0YSkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvYmplY3QgZmxhdm9ycyBhcHBsaWNhYmxlIGZvciBhIGNlcnRhaW4gbWltZXR5cGVcbiAgICogQHBhcmFtIG1pbWVUeXBlIE1pbWUgdHlwZSBvciBtaW1lIHR5cGUgcGF0dGVybiBsaWtlICdpbWFnZS8qJ1xuICAgKiBAcGFyYW0gYXBwIE9wdGlvbmFsIGFwcCBJRCB0aGF0IHJlc3RyaWN0cyB0aGUgcmV0dXJuZWQgZmxhdm9ycyB0byB0aGUgb25lc1xuICAgKiBwcm92aWRlZCBieSBhIHBhcnRpY3VsYXIgYXBwXG4gICAqIEBwYXJhbSBjdXN0b21GbGF2b3JzIE9wdGlvbmFsIGFycmF5IG9mIGN1c3RvbSBmbGF2b3JzIHRvIGFsc28gdGFrZSBpbnRvIGFjY291bnQuXG4gICAqIFRoaXMgY291bGQgYmUgZmxhdm9ycyBtYW5hZ2VkIGJ5IGFuIGFwcCBpdHNlbGYgdGhhdCBhcmUgbm90IHN1cHBvc2VkIHRvIGJlXG4gICAqIGV4cG9zZWQgdG8gb3RoZXIgYXBwc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBtYXRjaGluZyBvYmplY3QgZmxhdm9yc1xuICAgKi9cbiAgZ2V0QXBwbGljYWJsZURvY3VtZW50Rmxhdm9ycyhtaW1lVHlwZTogc3RyaW5nLCBhcHA/OiBzdHJpbmcsIGN1c3RvbUZsYXZvcnM/OiBPYmplY3RGbGF2b3JbXSk6IE9iamVjdEZsYXZvcltdIHtcbiAgICByZXR1cm4gWy4uLihjdXN0b21GbGF2b3JzIHx8IFtdKSwgLi4udGhpcy5fb2JqZWN0Rmxhdm9yc10uZmlsdGVyKFxuICAgICAgKG9mOiBPYmplY3RGbGF2b3IpID0+XG4gICAgICAgICghb2YuYXBwbGljYWJsZVRvPy5mb2xkZXJzIHx8IChvZi5hcHBsaWNhYmxlVG8/LmZvbGRlcnMgJiYgb2YuYXBwbGljYWJsZVRvPy5kb2N1bWVudHMpKSAmJlxuICAgICAgICAoIW9mLmFwcGxpY2FibGVUbyB8fFxuICAgICAgICAgICFvZi5hcHBsaWNhYmxlVG8/Lm1pbWVUeXBlcyB8fFxuICAgICAgICAgIChvZi5hcHBsaWNhYmxlVG8/Lm1pbWVUeXBlcz8uc29tZSgobXRwKSA9PiBVdGlscy5wYXR0ZXJuVG9SZWdFeHAobXRwKS50ZXN0KG1pbWVUeXBlKSkgJiYgKCFhcHAgfHwgb2YuYXBwID09PSBhcHApKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0QXBwbGljYWJsZUZvbGRlckZsYXZvcnMoYXBwPzogc3RyaW5nLCBjdXN0b21GbGF2b3JzPzogT2JqZWN0Rmxhdm9yW10pOiBPYmplY3RGbGF2b3JbXSB7XG4gICAgcmV0dXJuIFsuLi4oY3VzdG9tRmxhdm9ycyB8fCBbXSksIC4uLnRoaXMuX29iamVjdEZsYXZvcnNdLmZpbHRlcigob2Y6IE9iamVjdEZsYXZvcikgPT4gb2YuYXBwbGljYWJsZVRvPy5mb2xkZXJzICYmICghYXBwIHx8IG9mLmFwcCA9PT0gYXBwKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFwcGxpZWQgYW5kIGFwcGxpY2FibGUgb2JqZWN0IGZsYXZvcnMgZm9yIGEgY2VydGFpbiBvYmplY3RcbiAgICogQHBhcmFtIGRtc09iamVjdCBEbXNPYmplY3QgdG8gZ2V0IGZsYXZvcnMgZm9yXG4gICAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIHR3byBhcnJheXM6IGFwcGxpZWQgYW5kIGFwcGxpY2FibGUgZmxhdm9yc1xuICAgKi9cbiAgZ2V0QXBwbGllZE9iamVjdEZsYXZvcnMoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiB7XG4gICAgYXBwbGllZDogT2JqZWN0Rmxhdm9yW107XG4gICAgYXBwbGljYWJsZTogT2JqZWN0Rmxhdm9yW107XG4gIH0ge1xuICAgIGNvbnN0IGFwcGxpZWQ6IE9iamVjdEZsYXZvcltdID0gW107XG4gICAgY29uc3QgYXBwbGljYWJsZTogT2JqZWN0Rmxhdm9yW10gPSBbXTtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICBjb25zdCBzb3RzOiBzdHJpbmdbXSA9IChkbXNPYmplY3QuZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdIGFzIHN0cmluZ1tdKSB8fCBbXTtcbiAgICAgIGlmIChkbXNPYmplY3QuY29udGVudCkge1xuICAgICAgICB0aGlzLmdldEFwcGxpY2FibGVEb2N1bWVudEZsYXZvcnMoZG1zT2JqZWN0LmNvbnRlbnQubWltZVR5cGUpLmZvckVhY2goKGZsYXZvcjogT2JqZWN0Rmxhdm9yKSA9PiB7XG4gICAgICAgICAgaWYgKHNvdHMuaW5jbHVkZXMoZmxhdm9yLnNvdCkpIHtcbiAgICAgICAgICAgIGFwcGxpZWQucHVzaChmbGF2b3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBsaWNhYmxlLnB1c2goZmxhdm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoZG1zT2JqZWN0LmlzRm9sZGVyKSB7XG4gICAgICAgIHRoaXMuZ2V0QXBwbGljYWJsZUZvbGRlckZsYXZvcnMoKS5mb3JFYWNoKChmbGF2b3I6IE9iamVjdEZsYXZvcikgPT4ge1xuICAgICAgICAgIGlmIChzb3RzLmluY2x1ZGVzKGZsYXZvci5zb3QpKSB7XG4gICAgICAgICAgICBhcHBsaWVkLnB1c2goZmxhdm9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbGljYWJsZS5wdXNoKGZsYXZvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgYXBwbGllZCwgYXBwbGljYWJsZSB9O1xuICB9XG5cbiAgZ2V0Rmxhdm9yTGFiZWwoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiNzeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoaWQpIHx8IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoaWQpO1xuICB9XG5cbiAgYXBwbHlPYmplY3RGbGF2b3IoZG1zT2JqZWN0OiBEbXNPYmplY3QsIGZsYXZvcjogT2JqZWN0Rmxhdm9yLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9KTogT2JzZXJ2YWJsZTxEbXNPYmplY3Q+IHtcbiAgICBjb25zdCBzb3RzOiBzdHJpbmdbXSA9IChkbXNPYmplY3QuZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdIGFzIHN0cmluZ1tdKSB8fCBbXTtcbiAgICBkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gPSBbLi4uc290cywgZmxhdm9yLnNvdF07XG4gICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBkYXRlRG1zT2JqZWN0KGRtc09iamVjdC5pZCwgZGF0YSk7XG4gIH1cblxuICByZWdpc3RlclRpbGVFeHRlbnNpb24oZXh0OiBUaWxlRXh0ZW5zaW9uKSB7XG4gICAgdGhpcy5fZXh0ZW5zaW9uc1tleHQudHlwZUlkXSA9IGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGlsZSBleHRlbnNpb25zIGZvciBhIGNlcnRhaW4gdHlwZVxuICAgKiBAcGFyYW0gdHlwZUlkIElEIG9mIHRoZSB0eXBlIHRvIGZldGNoIGV4dGVzaW9uIGZvciAob2JqZWN0VHlwZUlEIG9yIHNlY29uZGFyeU9iamVjdFR5cGVJRClcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFJlZ2lzdGVyZWRUaWxlRXh0ZW5zaW9ucygpOiBSZWNvcmQ8c3RyaW5nLCBUaWxlRXh0ZW5zaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4dGVuc2lvbnM7XG4gIH1cblxuICBfaW5pdE9iamVjdFR5cGVDb25maWcoKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgLy8gbG9hZCBmbGF2b3JzIGZyb20gY29uZmlnXG4gICAgY29uc29sZS5kZWJ1ZygnTG9hZGluZyBvYmplY3QgdHlwZSBjb25maWcuLi4nKTtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLiNzaGVsbENvbmZpZy5nZXQoU0hFTExfQ09ORklHX1RZUEVTKS5waXBlKFxuICAgICAgICB0YXAoKHJlczogU2hlbGxDb25maWcgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLiNyZWdpc3Rlck9iamVjdFR5cGVJY29ucygocmVzLmRhdGEgYXMgQ2xpZW50U2hlbGxUeXBlW10pLm1hcCgodCkgPT4gdC5pZCkpO1xuXG4gICAgICAgICAgICBjb25zdCBmbHY6IEFwcFNjaGVtYUZsYXZvcltdID0gKHJlcy5kYXRhIGFzIENsaWVudFNoZWxsVHlwZVtdKS5tYXAoKHQpID0+ICh7XG4gICAgICAgICAgICAgIGlkOiB0LmlkLFxuICAgICAgICAgICAgICBzb3Q6IHQuaWQsXG4gICAgICAgICAgICAgIGljb246IHQuaWQsXG4gICAgICAgICAgICAgIHN2Z0ljb246IHRydWUsXG4gICAgICAgICAgICAgIG9iamVjdFR5cGVJRDogdC5iYXNlVHlwZSxcbiAgICAgICAgICAgICAgYXBwbGljYWJsZVRvOiB7XG4gICAgICAgICAgICAgICAgZm9sZGVyczogdC5iYXNlVHlwZSA9PT0gU3lzdGVtVHlwZS5GT0xERVIgfHwgdC5iYXNlVHlwZSA9PT0gU3lzdGVtVHlwZS5PQkpFQ1QsXG4gICAgICAgICAgICAgICAgZG9jdW1lbnRzOiB0LmJhc2VUeXBlID09PSBTeXN0ZW1UeXBlLkRPQ1VNRU5UIHx8IHQuYmFzZVR5cGUgPT09IFN5c3RlbVR5cGUuT0JKRUNULFxuICAgICAgICAgICAgICAgIG1pbWVUeXBlczogdC5hcHBsaWNhYmxlVG9NaW1lVHlwZXMgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZURlZmF1bHRBcHBseUNvbXBvbmVudDogIXQuaW5zdGFudEFwcGx5XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLmV4cG9zZU9iamVjdEZsYXZvcnMoZmx2LCAnZ2xvYmFsJywgJ2NvbmZpZycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgI3JlZ2lzdGVyT2JqZWN0VHlwZUljb25zKGlkczogc3RyaW5nW10pIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLiNzeXN0ZW0uc3lzdGVtJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWRzLmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIC8vIHNwbGl0IHRlY2huaWNhbCBuYW1lIGUuZy4gJ3N5c3RlbTpkb2N1bWVudCcgYW5kIHVzZSB0aGUgZmlyc3QgcGFydCBhcyBuYW1lc3BhY2VcbiAgICAgICAgY29uc3QgaWRUb2tlbnMgPSBpZC5zcGxpdCgnOicpO1xuICAgICAgICBpZiAoaWRUb2tlbnMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgY29uc3QgdXJpID0gYCR7dGhpcy4jY29uZmlnU2VydmljZS5nZXRBcGlCYXNlKEFwaUJhc2Uubm9uZSwgdHJ1ZSl9JHt0aGlzLiNzeXN0ZW0uZ2V0T2JqZWN0VHlwZUljb25VcmkoaWQpfWA7XG4gICAgICAgICAgdGhpcy4jaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25Jbk5hbWVzcGFjZShpZFRva2Vuc1swXSwgaWRUb2tlbnNbMV0sIHRoaXMuI3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodXJpKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAvLyBjb25zdCBjb25maWcgPSAodGhpcy4jaWNvblJlZ2lzdHJ5IGFzIGFueSkuX3N2Z0ljb25Db25maWdzO1xuICAgICAgLy8gY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfSk7XG4gIH1cblxuICBfaW5pdCgpIHt9XG59XG4iXX0=
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlL3NyYy9saWIvc2VydmljZXMvc2hlbGwvc2hlbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLFVBQVUsRUFFVixhQUFhLEVBQ2IsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsS0FBSyxFQUVOLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxZQUFZO0lBSHpCO1FBSUUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsWUFBTyxHQUFHLE1B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TUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1xuICBBcGlCYXNlLFxuICBCYXNlT2JqZWN0VHlwZUZpZWxkLFxuICBDb25maWdTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIERtc1NlcnZpY2UsXG4gIE9iamVjdENyZWF0ZUZsYXZvcixcbiAgU3lzdGVtU2VydmljZSxcbiAgU3lzdGVtVHlwZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVXNlclNlcnZpY2UsXG4gIFV0aWxzLFxuICBZdXZVc2VyXG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QsIGZpcnN0VmFsdWVGcm9tLCBmcm9tRXZlbnQsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ0xJRU5UX1NIRUxMX0FTU0VUUyB9IGZyb20gJy4uLy4uL2NsaWVudC1zaGVsbC5hc3NldHMnO1xuaW1wb3J0IHsgQXBwLCBBcHBTY2hlbWEsIEFwcFNjaGVtYUZsYXZvciwgQ2xpZW50U2hlbGxDb25maWcsIEdsb2JhbFNob3J0Y3V0LCBPYmplY3RGbGF2b3IsIFNoZWxsQXBwU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9jbGllbnQtc2hlbGwuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRpbGVFeHRlbnNpb24gfSBmcm9tICcuLi8uLi90aWxlLWV4dGVuc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU0hFTExfQ09ORklHX1RZUEVTIH0gZnJvbSAnLi4vc2hlbGwtY29uZmlnL3NoZWxsLWNvbmZpZy5jb25zdCc7XG5pbXBvcnQgeyBDbGllbnRTaGVsbFR5cGUsIFNoZWxsQ29uZmlnIH0gZnJvbSAnLi4vc2hlbGwtY29uZmlnL3NoZWxsLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2hlbGxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2hlbGwtY29uZmlnL3NoZWxsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxTZXJ2aWNlIHtcbiAgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gICNkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgI3VzZXJTZXJ2aWNlID0gaW5qZWN0KFVzZXJTZXJ2aWNlKTtcbiAgLy8gVE9ETzogTmVlZCBvcmlnbmFsIE1hdEljb25SZWdpc3RyeSB0byAjcmVnaXN0ZXJPYmplY3RUeXBlSWNvbnMsIG90aGVyd2lzZSBpY29ucyBjb3VsZCBub3QgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgbmFtZXNwYWNlXG4gIC8vICNpY29uUmVnaXN0cnkgPSBpbmplY3QoWXV2TWF0SWNvblJlZ2lzdHJ5KTtcbiAgI2ljb25SZWdpc3RyeSA9IGluamVjdChNYXRJY29uUmVnaXN0cnkpO1xuICAjc2hlbGxDb25maWcgPSBpbmplY3QoU2hlbGxDb25maWdTZXJ2aWNlKTtcbiAgI2NvbmZpZ1NlcnZpY2UgPSBpbmplY3QoQ29uZmlnU2VydmljZSk7XG4gICNzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgI0RPQ1VNRU5UID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfYnVzeUNvdW50ID0gMDtcbiAgcHJpdmF0ZSBpc0J1c3lTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIGlzQnVzeSQgPSB0aGlzLmlzQnVzeVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSk7XG5cbiAgI2FwcFNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBTaGVsbEFwcFNldHRpbmdzPiA9IHt9O1xuICAjYXBwU2V0dGluZ3NTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8U2hlbGxBcHBTZXR0aW5nc1tdPigpO1xuICBhcHBTZXR0aW5ncyQgPSB0aGlzLiNhcHBTZXR0aW5nc1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoNTAwKSk7XG5cbiAgI2FwcFNjaGVtYXRhOiBBcHBTY2hlbWFbXSA9IFtdO1xuICBhcHBCYXNlUm91dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgI2RlZmF1bHRTaGVsbENvbmZpZzogQ2xpZW50U2hlbGxDb25maWcgPSB7XG4gICAgYXBwSWNvbjogQ0xJRU5UX1NIRUxMX0FTU0VUUy5hcHBJY29uLFxuICAgIHNoZWxsSWNvbk5hbWVzcGFjZTogQ0xJRU5UX1NIRUxMX0FTU0VUUy5zaGVsbEljb25OYW1lc3BhY2VcbiAgfTtcbiAgc2hlbGxDb25maWcgPSBzaWduYWw8Q2xpZW50U2hlbGxDb25maWc+KHRoaXMuI2RlZmF1bHRTaGVsbENvbmZpZyk7XG5cbiAgLyoqIFRPRE86IGltcGxlbWVudCB0aGlzIGZlYXR1cmUgPz8/P1xuICAgKiBHbG9iYWwgc2hvcnRjdXRzIGFyZSBjYXB0dXJlZCBieSB0aGUgc2hlbGwgdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgZXhwZXJpZW5jZVxuICAgKiBhY2Nyb3NzIGFsbCBhcHBzLiBTZWFyY2ggaXMgb25lIGV4YW1wbGUuIEFwcHMgc2hvdWxkIG5vdCBkZWZpbmUgdGhlaXIgb3duIHNob3VydGN1dHNcbiAgICogZm9yIHNlYXJjaC4gSW5zdGVhZCB0aGV5IHNob3VsZCBzdWJzY3JpYmUgdG8gdGhlIGdsb2JhbCBzaG9ydGN1dHMgYW5kIGluaXRpYWxpemUgdGhlaXJcbiAgICogc2VhcmNoIGJhc2VkIG9uIHRoZSBnbG9iYWwgc2VhcmNoIHNob3J0Y3V0LlxuICAgKi9cbiAgZ2xvYmFsU2hvcnRjdXRzJDogT2JzZXJ2YWJsZTxHbG9iYWxTaG9ydGN1dD4gPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJykucGlwZShcbiAgICBtYXAoKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIC8vIGdsb2JhbCBzaG9ydGN1dCBmb3Igc2VhcmNoXG4gICAgICAvLyBpZiAoZS5jdHJsS2V5ICYmIGUuY29kZSA9PT0gJ0tleUYnKSB7XG4gICAgICAvLyAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIC8vICAgcmV0dXJuIEdsb2JhbFNob3J0Y3V0LnNlYXJjaDtcbiAgICAgIC8vIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSksXG4gICAgZmlsdGVyKChzOiBHbG9iYWxTaG9ydGN1dCB8IHVuZGVmaW5lZCkgPT4gcyAhPT0gdW5kZWZpbmVkKSxcbiAgICBtYXAoKHMpID0+IHMgYXMgR2xvYmFsU2hvcnRjdXQpXG4gICk7XG5cbiAgcHJpdmF0ZSBfZXh0ZW5zaW9uczogUmVjb3JkPHN0cmluZywgVGlsZUV4dGVuc2lvbj4gPSB7fTtcbiAgcHJpdmF0ZSBfb2JqZWN0Rmxhdm9yczogT2JqZWN0Rmxhdm9yW10gPSBbXTtcbiAgcHJpdmF0ZSBfb2JqZWN0Q3JlYXRlRmxhdm9yczogT2JqZWN0Q3JlYXRlRmxhdm9yW10gPSBbXTtcblxuICBwaWNrRmlsZSgpOiBPYnNlcnZhYmxlPEZpbGUgfCBudWxsPiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLiNET0NVTUVOVC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgaW5wdXQuY2xpY2soKTtcbiAgICByZXR1cm4gZnJvbUV2ZW50KGlucHV0LCAnY2hhbmdlJykucGlwZShcbiAgICAgIG1hcCgoZTogRXZlbnQpID0+IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcz8uWzBdIHx8IG51bGwpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaW5wdXQucmVtb3ZlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZXRTaGVsbENvbmZpZyhjc2M6IENsaWVudFNoZWxsQ29uZmlnKSB7XG4gICAgdGhpcy5zaGVsbENvbmZpZy51cGRhdGUoKHNjKSA9PiAoe1xuICAgICAgYXBwSWNvbjogY3NjLmFwcEljb24gPz8gc2MuYXBwSWNvbixcbiAgICAgIHNoZWxsSWNvbk5hbWVzcGFjZTogY3NjLnNoZWxsSWNvbk5hbWVzcGFjZSA/PyBzYy5zaGVsbEljb25OYW1lc3BhY2VcbiAgICB9KSk7XG4gIH1cblxuICBzZXRBcHBCYXNlUm91dGVzKGFwcHM6IEFwcFtdKSB7XG4gICAgYXBwcy5mb3JFYWNoKChhKSA9PiAodGhpcy5hcHBCYXNlUm91dGVzW2EuaWRdID0gYS5wYXRoIHx8ICcnKSk7XG4gIH1cblxuICByZWdpc3RlckFwcChzY2hlbWE6IEFwcFNjaGVtYSkge1xuICAgIHRoaXMuI2FwcFNjaGVtYXRhLnB1c2goc2NoZW1hKTtcbiAgfVxuXG4gIGdldFJlZ2lzdGVyZWRBcHAoaWQ6IHN0cmluZyk6IEFwcFNjaGVtYSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI2FwcFNjaGVtYXRhLmZpbmQoKGEpID0+IGEuaWQgPT09IGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBzZXR0aW5ncyBmb3IgYXBwcyB0byBob29rIGludG8gc2hlbGwgc2V0dGluZ3MgcGFnZS5cbiAgICogVGhlc2UgZXhwb3NlZCBzZXR0aW5ncyB3aWxsIGJlIHNhdmVkIGluIHRoZSB1c2VycyBzZXR0aW5ncyBvbiB0aGUgYmFja2VuZC5cbiAgICogQHBhcmFtIGFwcElEIElEIG9mIHRoZSBhcHAgdGhhdCBleHBvc2VzIHRoZSBzZXR0aW5nc1xuICAgKiBAcGFyYW0gY2ZnIFNoZWxsQXBwU2V0dGluZ3Mgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNldHRpbmdzXG4gICAqL1xuICByZWdpc3RlckFwcFNldHRpbmdzKGFwcElEOiBzdHJpbmcsIGNmZzogU2hlbGxBcHBTZXR0aW5ncykge1xuICAgIHRoaXMuI2FwcFNldHRpbmdzW2FwcElEXSA9IGNmZztcbiAgICB0aGlzLiNhcHBTZXR0aW5nc1N1YmplY3QubmV4dCh0aGlzLiNnZXRBcHBTZXR0aW5ncygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHBlcnNpc3RlZCBzZXR0aW5ncyBmb3IgYSBzcGVjaWZpYyBhcHBcbiAgICogQHBhcmFtIGFwcElEIElEIG9mIHRoZSBhcHAgdG8gbG9hZCB0aGUgc2V0dGluZ3MgZm9yXG4gICAqL1xuICB1c2Vyc0FwcFNldHRpbmdzJChhcHBJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaGVsbEFwcFNldHRpbmdzIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuI3VzZXJTZXJ2aWNlLnVzZXIkLnBpcGUoXG4gICAgICBtYXAoKHU6IFl1dlVzZXIgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgcmV0dXJuIHUgJiYgdS51c2VyU2V0dGluZ3MuY2xpZW50QXBwU2V0dGluZ3MgPyB1LnVzZXJTZXR0aW5ncy5jbGllbnRBcHBTZXR0aW5nc1thcHBJRF0gOiB1bmRlZmluZWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlVXNlcnNBcHBTZXR0aW5ncyhhcHBJRDogc3RyaW5nLCBzZXR0aW5nczogU2hlbGxBcHBTZXR0aW5ncyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI3VzZXJTZXJ2aWNlLnNhdmVVc2VyU2V0dGluZ3MoeyBjbGllbnRBcHBTZXR0aW5nczogeyBbYXBwSURdOiBzZXR0aW5ncyB9IH0pO1xuICB9XG5cbiAgI2dldEFwcFNldHRpbmdzKCk6IFNoZWxsQXBwU2V0dGluZ3NbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuI2FwcFNldHRpbmdzKVxuICAgICAgLm1hcCgoa2V5OiBzdHJpbmcpID0+ICh7XG4gICAgICAgIGFwcElEOiB0aGlzLiNhcHBTZXR0aW5nc1trZXldLmFwcElELFxuICAgICAgICBsYWJlbDogdGhpcy4jYXBwU2V0dGluZ3Nba2V5XS5sYWJlbCxcbiAgICAgICAgcHJvcGVydGllczogdGhpcy4jYXBwU2V0dGluZ3Nba2V5XS5wcm9wZXJ0aWVzXG4gICAgICB9KSlcbiAgICAgIC5zb3J0KCk7XG4gIH1cblxuICBhZGRCdXN5KCkge1xuICAgIGlmICh0aGlzLl9idXN5Q291bnQgPT09IDApIHtcbiAgICAgIHRoaXMuaXNCdXN5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLl9idXN5Q291bnQrKztcbiAgfVxuICByZW1vdmVCdXN5KCkge1xuICAgIHRoaXMuX2J1c3lDb3VudC0tO1xuICAgIGlmICh0aGlzLl9idXN5Q291bnQgPT09IDApIHtcbiAgICAgIHRoaXMuaXNCdXN5U3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBleHBvc2VPYmplY3RDcmVhdGVGbGF2b3JzKGZsYXZvcnM6IE9iamVjdENyZWF0ZUZsYXZvcltdKSB7XG4gICAgZmxhdm9ycy5mb3JFYWNoKChmbGF2b3I6IE9iamVjdENyZWF0ZUZsYXZvcikgPT4ge1xuICAgICAgY29uc3QgaWR4ID0gdGhpcy5fb2JqZWN0Q3JlYXRlRmxhdm9ycy5maW5kSW5kZXgoKGYpID0+IGYuaWQgPT09IGZsYXZvci5pZCk7XG4gICAgICBpZiAoaWR4ID09PSAtMSkgdGhpcy5fb2JqZWN0Q3JlYXRlRmxhdm9ycy5wdXNoKGZsYXZvcik7XG4gICAgfSk7XG4gIH1cblxuICBjb25jZWFsT2JqZWN0Q3JlYXRlRmxhdm9ycyhmbGF2b3JzOiBPYmplY3RDcmVhdGVGbGF2b3JbXSkge1xuICAgIGNvbnN0IGZpZCA9IGZsYXZvcnMubWFwKChmKSA9PiBmLmlkKTtcbiAgICB0aGlzLl9vYmplY3RDcmVhdGVGbGF2b3JzID0gdGhpcy5fb2JqZWN0Q3JlYXRlRmxhdm9ycy5maWx0ZXIoKGYpID0+ICFmaWQuaW5jbHVkZXMoZi5pZCkpO1xuICB9XG5cbiAgZ2V0T2JqZWN0Q3JlYXRlRmxhdm9ycygpOiBPYmplY3RDcmVhdGVGbGF2b3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuX29iamVjdENyZWF0ZUZsYXZvcnM7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3NlcyBhIGxpc3Qgb2Ygb2JqZWN0IGZsYXZvcnMgdG8gdGhlIHNoZWxsLlxuICAgKiBGbGF2b3JzIGFyZSBhYmxlIHRvIGJlIGFwcGxpZWQgdG8gb2JqZWN0cyBhbmQgYWRkIG5ldyBtZXRhZGF0YSBwcm9wZXJ0aWVzIHRvIHRoZW0uXG4gICAqIEBwYXJhbSBmbGF2b3JzIEFycmF5IG9mIGZsYXZvcnMgdG8gYmUgZXhwb3NlZFxuICAgKiBAcGFyYW0gYXBwIE9wdGlvbmFsIElEIG9mIHRoZSBhcHAgdGhhdCBleHBvc2VzIHRoZSBmbGF2b3JzIChkZWZhdWx0cyB0byAnZ2xvYmFsJyBpZiBub3QgcHJvdmlkZWQpXG4gICAqIEBwYXJhbSBvcmlnaW4gT3B0aW9uYWwgb3JpZ2luIG9mIHRoZSBmbGF2b3JzLiBGbGF2b3JzIGNvdWxkIGJlIGFkZGVkIGJ5IGFwcHMgb3IgZGVyaXZlZFxuICAgKiBmcm9tIGEgY29uZmlndXJhdGlvbiAoZGVmYXVsdHMgdG8gJ2FwcCcgaWYgbm90IHByb3ZpZGVkKVxuICAgKi9cbiAgZXhwb3NlT2JqZWN0Rmxhdm9ycyhmbGF2b3JzOiBBcHBTY2hlbWFGbGF2b3JbXSwgYXBwID0gJ2dsb2JhbCcsIG9yaWdpbjogJ2FwcCcgfCAnY29uZmlnJyA9ICdhcHAnKSB7XG4gICAgZmxhdm9ycy5mb3JFYWNoKChmKSA9PiB0aGlzLmV4cG9zZU9iamVjdEZsYXZvcihmLCBhcHAsIG9yaWdpbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgZXhwb3NlZCBvYmplY3QgZmxhdm9ycyBmcm9tIHRoZSBzaGVsbC5cbiAgICogQHBhcmFtIGZsYXZvcnMgQXJyYXkgb2YgZmxhdm9ycyB0byBiZSBjb25jZWFsZWRcbiAgICovXG4gIGNvbmNlYWxPYmplY3RGbGF2b3JzKGZsYXZvcnM6IEFwcFNjaGVtYUZsYXZvcltdLCBhcHAgPSAnZ2xvYmFsJykge1xuICAgIGZsYXZvcnMuZm9yRWFjaCgoZikgPT4gdGhpcy5jb25jZWFsT2JqZWN0Rmxhdm9yKGYsIGFwcCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9zZXMgYW4gb2JqZWN0IGZsYXZvciB0byB0aGUgc2hlbGwuIEZsYXZvcnMgYXJlIGFibGUgdG8gYmUgYXBwbGllZCB0byBvYmplY3RzXG4gICAqIGluIG9yZGVyIHRvIGFkZCBhIG5ldyBhc3BlY3QgdG8gdGhlbS4gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYW4gaW1hZ2UgZm9yIGV4YW1wbGUgY291bGRcbiAgICogYmUgYWRkZWQgYSBmbGF2b3Igb2YgJ0VYSUYgRGF0YScgdGhhdCB3aWxsIGFkZCB0aGUgY29ycmVzcG9uZGluZyBTT1QgdG8gaXQuIFRoaXMgd2F5IHRoZVxuICAgKiBvYmplY3QgZ2V0cyBuZXcgbWV0YWRhdGEgcHJvcGVydGllcy4gSWYgc3VwcG9ydGVkLCB0aGVzZSBtZXRhZGF0YSBjb3VsZCBldmVuIGJlIGV4dHJhY3RlZFxuICAgKiBmcm9tIHRoZSBmaWxlIGFuZCBmaWxsZWQgb3V0IGF1dG9tYXRpY2FsbHkuXG4gICAqIEBwYXJhbSBmbGF2b3IgVGhlIGZsYXZvciBvYmplY3QgdG8gYmUgZXhwb3NlZFxuICAgKiBAcGFyYW0gYXBwIE9wdGlvbmFsIElEIG9mIHRoZSBhcHAgdGhhdCBleHBvc2VzIHRoZSBmbGF2b3IgKGRlZmF1bHRzIHRvICdnbG9iYWwnIGlmIG5vdCBwcm92aWRlZClcbiAgICogQHBhcmFtIG9yaWdpbiBPcHRpb25hbCBvcmlnaW4gb2YgdGhlIGZsYXZvcnMuIEZsYXZvcnMgY291bGQgYmUgYWRkZWQgYnkgYXBwcyBvciBkZXJpdmVkXG4gICAqIGZyb20gYSBjb25maWd1cmF0aW9uIChkZWZhdWx0cyB0byAnYXBwJyBpZiBub3QgcHJvdmlkZWQpXG4gICAqL1xuICBleHBvc2VPYmplY3RGbGF2b3IoZmxhdm9yOiBBcHBTY2hlbWFGbGF2b3IsIGFwcCA9ICdnbG9iYWwnLCBvcmlnaW46ICdhcHAnIHwgJ2NvbmZpZycgPSAnYXBwJykge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuX29iamVjdEZsYXZvcnMuZmluZEluZGV4KChmKSA9PiBmLmlkID09PSBmbGF2b3IuaWQgJiYgZi5hcHAgPT09IGFwcCk7XG4gICAgaWYgKGlkeCA9PT0gLTEpIHRoaXMuX29iamVjdEZsYXZvcnMucHVzaCh7IC4uLmZsYXZvciwgYXBwLCBvcmlnaW4gfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbiBleHBvc2VkIG9iamVjdCBmbGF2b3IgZnJvbSB0aGUgc2hlbGwuXG4gICAqIEBwYXJhbSBmbGF2b3IgRmxhdm9yIHRvIGJlIGNvbmNlYWxlZFxuICAgKiBAcGFyYW0gYXBwIE9wdGlvbmFsIElEIG9mIHRoZSBhcHAgdGhhdCBleHBvc2VzIHRoZSBmbGF2b3IgKGRlZmF1bHRzIHRvICdnbG9iYWwnIGlmIG5vdCBwcm92aWRlZClcbiAgICovXG4gIGNvbmNlYWxPYmplY3RGbGF2b3IoZmxhdm9yOiBBcHBTY2hlbWFGbGF2b3IsIGFwcCA9ICdnbG9iYWwnKSB7XG4gICAgdGhpcy5fb2JqZWN0Rmxhdm9ycyA9IHRoaXMuX29iamVjdEZsYXZvcnMuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmbGF2b3IuaWQgJiYgZi5hcHAgIT09IGFwcCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlZ2lzdGVyZWQgb2JqZWN0IGZsYXZvcnNcbiAgICogQHBhcmFtIGFwcCBPcHRpb25hbCBhcHAgSUQgdGhhdCByZXN0cmljdHMgdGhlIHJldHVybmVkIGZsYXZvcnMgdG8gdGhlIG9uZXNcbiAgICogcHJvdmlkZWQgYnkgYSBwYXJ0aWN1bGFyIGFwcC4gSWYgbm90IHByb3ZpZGVkIGFsbCBmbGF2b3JzIGFyZSByZXR1cm5lZFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBtYXRjaGluZyBvYmplY3QgZmxhdm9yc1xuICAgKi9cbiAgZ2V0T2JqZWN0Rmxhdm9ycyhhcHA/OiBzdHJpbmcpOiBPYmplY3RGbGF2b3JbXSB7XG4gICAgcmV0dXJuIGFwcCA/IHRoaXMuX29iamVjdEZsYXZvcnMuZmlsdGVyKChvZikgPT4gb2YuYXBwID09PSBhcHApIDogdGhpcy5fb2JqZWN0Rmxhdm9ycztcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgYXBwbGljYXRpb24gb2YgYW4gb2JqZWN0IGZsYXZvci4gSWYgdGhlIGZsYXZvciBoYXMgYW4gYXBwbHlDb21wb25lbnRcbiAgICogZGVmaW5lZCwgdGhlIG92ZXJsYXkgd2lsbCBiZSBvcGVuZWQgd2l0aCB0aGUgY29tcG9uZW50LiBPdGhlcndpc2UgdGhlIGZsYXZvciB3aWxsXG4gICAqIGJlIGFwcGxpZWQgZGlyZWN0bHkgdG8gdGhlIG9iamVjdC5cbiAgICogQHBhcmFtIGRtc09iamVjdCBUaGUgb2JqZWN0IHRvIGFwcGx5IHRoZSBmbGF2b3IgdG9cbiAgICogQHBhcmFtIGZsYXZvciBUaGUgZmxhdm9yIHRvIGFwcGx5XG4gICAqIEBwYXJhbSBkYXRhIE9wdGlvbmFsIGRhdGEgdG8gYmUgcGFzc2VkIHRvIHRoZSBmbGF2b3IgY29tcG9uZW50XG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0cnVlIGlmIHRoZSBmbGF2b3Igd2FzIGFwcGxpZWQgc3VjY2Vzc2Z1bGx5XG4gICAqL1xuICB0cmlnZ2VyQXBwbHlPYmplY3RGbGF2b3IoZG1zT2JqZWN0OiBEbXNPYmplY3QsIGZsYXZvcjogT2JqZWN0Rmxhdm9yLCBkYXRhPzogYW55LCBhcHBseUNvbXBvbmVudD86IFR5cGU8YW55Pik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIGNvbnN0IGFjID0gYXBwbHlDb21wb25lbnQgfHwgZmxhdm9yLmFwcGx5Q29tcG9uZW50O1xuICAgICAgaWYgKGFjKSB7XG4gICAgICAgIHRoaXMuI2RpYWxvZy5vcGVuKGFjLCB7XG4gICAgICAgICAgbWF4V2lkdGg6ICc5MHZ3JyxcbiAgICAgICAgICBtYXhIZWlnaHQ6ICc5MHZoJyxcbiAgICAgICAgICBtaW5XaWR0aDogJzUwdncnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRtc09iamVjdCxcbiAgICAgICAgICAgIGZsYXZvcixcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzb3RzOiBzdHJpbmdbXSA9IChkbXNPYmplY3QuZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdIGFzIHN0cmluZ1tdKSB8fCBbXTtcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0ge307XG4gICAgICAgIGRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSA9IFsuLi5zb3RzLCBmbGF2b3Iuc290XTtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBkYXRlRG1zT2JqZWN0KGRtc09iamVjdD8uaWQsIGRhdGEpLnBpcGUobWFwKCgpID0+IHRydWUpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgcmV0dXJuIG9mKGZhbHNlKTtcbiAgfVxuXG4gIHJlbW92ZU9iamVjdEZsYXZvcihkbXNPYmplY3Q6IERtc09iamVjdCwgZmxhdm9yOiBPYmplY3RGbGF2b3IpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU106IChkbXNPYmplY3QuZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdIGFzIHN0cmluZ1tdKS5maWx0ZXIoXG4gICAgICAgIChzb3Q6IHN0cmluZykgPT4gc290ICE9PSBmbGF2b3Iuc290XG4gICAgICApXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS51cGRhdGVEbXNPYmplY3QoZG1zT2JqZWN0LmlkLCBkYXRhKS5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9iamVjdCBmbGF2b3JzIGFwcGxpY2FibGUgZm9yIGEgY2VydGFpbiBtaW1ldHlwZVxuICAgKiBAcGFyYW0gbWltZVR5cGUgTWltZSB0eXBlIG9yIG1pbWUgdHlwZSBwYXR0ZXJuIGxpa2UgJ2ltYWdlLyonXG4gICAqIEBwYXJhbSBhcHAgT3B0aW9uYWwgYXBwIElEIHRoYXQgcmVzdHJpY3RzIHRoZSByZXR1cm5lZCBmbGF2b3JzIHRvIHRoZSBvbmVzXG4gICAqIHByb3ZpZGVkIGJ5IGEgcGFydGljdWxhciBhcHBcbiAgICogQHBhcmFtIGN1c3RvbUZsYXZvcnMgT3B0aW9uYWwgYXJyYXkgb2YgY3VzdG9tIGZsYXZvcnMgdG8gYWxzbyB0YWtlIGludG8gYWNjb3VudC5cbiAgICogVGhpcyBjb3VsZCBiZSBmbGF2b3JzIG1hbmFnZWQgYnkgYW4gYXBwIGl0c2VsZiB0aGF0IGFyZSBub3Qgc3VwcG9zZWQgdG8gYmVcbiAgICogZXhwb3NlZCB0byBvdGhlciBhcHBzXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIG1hdGNoaW5nIG9iamVjdCBmbGF2b3JzXG4gICAqL1xuICBnZXRBcHBsaWNhYmxlRG9jdW1lbnRGbGF2b3JzKG1pbWVUeXBlOiBzdHJpbmcsIGFwcD86IHN0cmluZywgY3VzdG9tRmxhdm9ycz86IE9iamVjdEZsYXZvcltdKTogT2JqZWN0Rmxhdm9yW10ge1xuICAgIHJldHVybiBbLi4uKGN1c3RvbUZsYXZvcnMgfHwgW10pLCAuLi50aGlzLl9vYmplY3RGbGF2b3JzXS5maWx0ZXIoXG4gICAgICAob2Y6IE9iamVjdEZsYXZvcikgPT5cbiAgICAgICAgKCFvZi5hcHBsaWNhYmxlVG8/LmZvbGRlcnMgfHwgKG9mLmFwcGxpY2FibGVUbz8uZm9sZGVycyAmJiBvZi5hcHBsaWNhYmxlVG8/LmRvY3VtZW50cykpICYmXG4gICAgICAgICghb2YuYXBwbGljYWJsZVRvIHx8XG4gICAgICAgICAgIW9mLmFwcGxpY2FibGVUbz8ubWltZVR5cGVzIHx8XG4gICAgICAgICAgKG9mLmFwcGxpY2FibGVUbz8ubWltZVR5cGVzPy5zb21lKChtdHApID0+IFV0aWxzLnBhdHRlcm5Ub1JlZ0V4cChtdHApLnRlc3QobWltZVR5cGUpKSAmJiAoIWFwcCB8fCBvZi5hcHAgPT09IGFwcCkpKVxuICAgICk7XG4gIH1cblxuICBnZXRBcHBsaWNhYmxlRm9sZGVyRmxhdm9ycyhhcHA/OiBzdHJpbmcsIGN1c3RvbUZsYXZvcnM/OiBPYmplY3RGbGF2b3JbXSk6IE9iamVjdEZsYXZvcltdIHtcbiAgICByZXR1cm4gWy4uLihjdXN0b21GbGF2b3JzIHx8IFtdKSwgLi4udGhpcy5fb2JqZWN0Rmxhdm9yc10uZmlsdGVyKChvZjogT2JqZWN0Rmxhdm9yKSA9PiBvZi5hcHBsaWNhYmxlVG8/LmZvbGRlcnMgJiYgKCFhcHAgfHwgb2YuYXBwID09PSBhcHApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYXBwbGllZCBhbmQgYXBwbGljYWJsZSBvYmplY3QgZmxhdm9ycyBmb3IgYSBjZXJ0YWluIG9iamVjdFxuICAgKiBAcGFyYW0gZG1zT2JqZWN0IERtc09iamVjdCB0byBnZXQgZmxhdm9ycyBmb3JcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgdHdvIGFycmF5czogYXBwbGllZCBhbmQgYXBwbGljYWJsZSBmbGF2b3JzXG4gICAqL1xuICBnZXRBcHBsaWVkT2JqZWN0Rmxhdm9ycyhkbXNPYmplY3Q6IERtc09iamVjdCk6IHtcbiAgICBhcHBsaWVkOiBPYmplY3RGbGF2b3JbXTtcbiAgICBhcHBsaWNhYmxlOiBPYmplY3RGbGF2b3JbXTtcbiAgfSB7XG4gICAgY29uc3QgYXBwbGllZDogT2JqZWN0Rmxhdm9yW10gPSBbXTtcbiAgICBjb25zdCBhcHBsaWNhYmxlOiBPYmplY3RGbGF2b3JbXSA9IFtdO1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIGNvbnN0IHNvdHM6IHN0cmluZ1tdID0gKGRtc09iamVjdC5kYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gYXMgc3RyaW5nW10pIHx8IFtdO1xuICAgICAgaWYgKGRtc09iamVjdC5jb250ZW50KSB7XG4gICAgICAgIHRoaXMuZ2V0QXBwbGljYWJsZURvY3VtZW50Rmxhdm9ycyhkbXNPYmplY3QuY29udGVudC5taW1lVHlwZSkuZm9yRWFjaCgoZmxhdm9yOiBPYmplY3RGbGF2b3IpID0+IHtcbiAgICAgICAgICBpZiAoc290cy5pbmNsdWRlcyhmbGF2b3Iuc290KSkge1xuICAgICAgICAgICAgYXBwbGllZC5wdXNoKGZsYXZvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFwcGxpY2FibGUucHVzaChmbGF2b3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkbXNPYmplY3QuaXNGb2xkZXIpIHtcbiAgICAgICAgdGhpcy5nZXRBcHBsaWNhYmxlRm9sZGVyRmxhdm9ycygpLmZvckVhY2goKGZsYXZvcjogT2JqZWN0Rmxhdm9yKSA9PiB7XG4gICAgICAgICAgaWYgKHNvdHMuaW5jbHVkZXMoZmxhdm9yLnNvdCkpIHtcbiAgICAgICAgICAgIGFwcGxpZWQucHVzaChmbGF2b3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBsaWNhYmxlLnB1c2goZmxhdm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBhcHBsaWVkLCBhcHBsaWNhYmxlIH07XG4gIH1cblxuICBnZXRGbGF2b3JMYWJlbChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N5c3RlbS5nZXRMb2NhbGl6ZWRMYWJlbChpZCkgfHwgdGhpcy50cmFuc2xhdGUuaW5zdGFudChpZCk7XG4gIH1cblxuICBhcHBseU9iamVjdEZsYXZvcihkbXNPYmplY3Q6IERtc09iamVjdCwgZmxhdm9yOiBPYmplY3RGbGF2b3IsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge30pOiBPYnNlcnZhYmxlPERtc09iamVjdD4ge1xuICAgIGNvbnN0IHNvdHM6IHN0cmluZ1tdID0gKGRtc09iamVjdC5kYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gYXMgc3RyaW5nW10pIHx8IFtdO1xuICAgIGRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSA9IFsuLi5zb3RzLCBmbGF2b3Iuc290XTtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS51cGRhdGVEbXNPYmplY3QoZG1zT2JqZWN0LmlkLCBkYXRhKTtcbiAgfVxuXG4gIHJlZ2lzdGVyVGlsZUV4dGVuc2lvbihleHQ6IFRpbGVFeHRlbnNpb24pIHtcbiAgICB0aGlzLl9leHRlbnNpb25zW2V4dC50eXBlSWRdID0gZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aWxlIGV4dGVuc2lvbnMgZm9yIGEgY2VydGFpbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlSWQgSUQgb2YgdGhlIHR5cGUgdG8gZmV0Y2ggZXh0ZXNpb24gZm9yIChvYmplY3RUeXBlSUQgb3Igc2Vjb25kYXJ5T2JqZWN0VHlwZUlEKVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZFRpbGVFeHRlbnNpb25zKCk6IFJlY29yZDxzdHJpbmcsIFRpbGVFeHRlbnNpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZW5zaW9ucztcbiAgfVxuXG4gIF9pbml0T2JqZWN0VHlwZUNvbmZpZygpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAvLyBsb2FkIGZsYXZvcnMgZnJvbSBjb25maWdcbiAgICBjb25zb2xlLmRlYnVnKCdMb2FkaW5nIG9iamVjdCB0eXBlIGNvbmZpZy4uLicpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuI3NoZWxsQ29uZmlnLmdldChTSEVMTF9DT05GSUdfVFlQRVMpLnBpcGUoXG4gICAgICAgIHRhcCgocmVzOiBTaGVsbENvbmZpZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHRoaXMuI3JlZ2lzdGVyT2JqZWN0VHlwZUljb25zKChyZXMuZGF0YSBhcyBDbGllbnRTaGVsbFR5cGVbXSkubWFwKCh0KSA9PiB0LmlkKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZsdjogQXBwU2NoZW1hRmxhdm9yW10gPSAocmVzLmRhdGEgYXMgQ2xpZW50U2hlbGxUeXBlW10pLm1hcCgodCkgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IHQuaWQsXG4gICAgICAgICAgICAgIHNvdDogdC5pZCxcbiAgICAgICAgICAgICAgaWNvbjogdC5pZCxcbiAgICAgICAgICAgICAgc3ZnSWNvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgb2JqZWN0VHlwZUlEOiB0LmJhc2VUeXBlLFxuICAgICAgICAgICAgICBhcHBsaWNhYmxlVG86IHtcbiAgICAgICAgICAgICAgICBmb2xkZXJzOiB0LmJhc2VUeXBlID09PSBTeXN0ZW1UeXBlLkZPTERFUiB8fCB0LmJhc2VUeXBlID09PSBTeXN0ZW1UeXBlLk9CSkVDVCxcbiAgICAgICAgICAgICAgICBkb2N1bWVudHM6IHQuYmFzZVR5cGUgPT09IFN5c3RlbVR5cGUuRE9DVU1FTlQgfHwgdC5iYXNlVHlwZSA9PT0gU3lzdGVtVHlwZS5PQkpFQ1QsXG4gICAgICAgICAgICAgICAgbWltZVR5cGVzOiB0LmFwcGxpY2FibGVUb01pbWVUeXBlcyB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXNlRGVmYXVsdEFwcGx5Q29tcG9uZW50OiAhdC5pbnN0YW50QXBwbHlcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRoaXMuZXhwb3NlT2JqZWN0Rmxhdm9ycyhmbHYsICdnbG9iYWwnLCAnY29uZmlnJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAjcmVnaXN0ZXJPYmplY3RUeXBlSWNvbnMoaWRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuI3N5c3RlbS5zeXN0ZW0kLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAvLyBzcGxpdCB0ZWNobmljYWwgbmFtZSBlLmcuICdzeXN0ZW06ZG9jdW1lbnQnIGFuZCB1c2UgdGhlIGZpcnN0IHBhcnQgYXMgbmFtZXNwYWNlXG4gICAgICAgIGNvbnN0IGlkVG9rZW5zID0gaWQuc3BsaXQoJzonKTtcbiAgICAgICAgaWYgKGlkVG9rZW5zLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGNvbnN0IHVyaSA9IGAke3RoaXMuI2NvbmZpZ1NlcnZpY2UuZ2V0QXBpQmFzZShBcGlCYXNlLm5vbmUsIHRydWUpfSR7dGhpcy4jc3lzdGVtLmdldE9iamVjdFR5cGVJY29uVXJpKGlkKX1gO1xuICAgICAgICAgIHRoaXMuI2ljb25SZWdpc3RyeS5hZGRTdmdJY29uSW5OYW1lc3BhY2UoaWRUb2tlbnNbMF0sIGlkVG9rZW5zWzFdLCB0aGlzLiNzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVyaSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIF9pbml0KCkge31cbn1cbiJdfQ==
@@ -22,7 +22,7 @@ export class ShellConfigService {
22
22
  object = res.objects[0];
23
23
  }
24
24
  return object ? object.properties[BaseObjectTypeField.OBJECT_ID].value : undefined;
25
- }), switchMap((id) => (id ? this.#backend.get(`/api/dms/objects/${id}/contents/file`, ApiBase.core) : of(undefined))), map((data) => {
25
+ }), switchMap((id) => (id ? this.#backend.get(`/dms/objects/${id}/contents/file`, ApiBase.core) : of(undefined))), map((data) => {
26
26
  return data
27
27
  ? {
28
28
  id: object.properties[BaseObjectTypeField.OBJECT_ID].value,
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
97
97
  providedIn: 'root'
98
98
  }]
99
99
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtc2hlbGwtY29yZS9zcmMvbGliL3NlcnZpY2VzL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQU8sTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR3BGOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEMsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLE1BQVcsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLElBQUksQ0FDSCxxQkFBcUIsRUFDckI7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLHlCQUF5QixDQUFDLElBQUksQ0FBQzthQUMzQztTQUNGLEVBQ0QsT0FBTyxDQUFDLElBQUksQ0FDYjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNWLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIs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LENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDOytHQXRHVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlCYXNlLCBCYWNrZW5kU2VydmljZSwgQmFzZU9iamVjdFR5cGVGaWVsZCwgRG1zU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFNoZWxsQ29uZmlnUXVlcnlTdHJpbmcsIFNIRUxMX0NPTkZJR19CQVNFIH0gZnJvbSAnLi9zaGVsbC1jb25maWcuY29uc3QnO1xuaW1wb3J0IHsgU2hlbGxDb25maWcgfSBmcm9tICcuL3NoZWxsLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gbWFuYWdlIHNoZWxsIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy4gQmFzZSBvbiB0aGUgJ3N5c3RlbTppdGVtJyB0eXBlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaGVsbENvbmZpZ1NlcnZpY2Uge1xuICAjZG1zU2VydmljZSA9IGluamVjdChEbXNTZXJ2aWNlKTtcbiAgI2JhY2tlbmQgPSBpbmplY3QoQmFja2VuZFNlcnZpY2UpO1xuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNoZWxsQ29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IG9iamVjdDogYW55O1xuICAgIHJldHVybiB0aGlzLiNiYWNrZW5kXG4gICAgICAucG9zdChcbiAgICAgICAgJy9kbXMvb2JqZWN0cy9zZWFyY2gnLFxuICAgICAgICB7XG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIHN0YXRlbWVudDogZ2V0U2hlbGxDb25maWdRdWVyeVN0cmluZyhuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgQXBpQmFzZS5jb3JlXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzLm9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBvYmplY3QgPSByZXMub2JqZWN0c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXS52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoaWQpID0+IChpZCA/IHRoaXMuI2JhY2tlbmQuZ2V0KGAvYXBpL2Rtcy9vYmplY3RzLyR7aWR9L2NvbnRlbnRzL2ZpbGVgLCBBcGlCYXNlLmNvcmUpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgaWQ6IG9iamVjdC5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBvYmplY3QucHJvcGVydGllc1tTSEVMTF9DT05GSUdfQkFTRS5uYW1lUHJvcGVydHldLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IG9iamVjdC5wcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddPy52YWx1ZSxcbiAgICAgICAgICAgICAgICB1c2VyOiBvYmplY3QucHJvcGVydGllc1snc3lzdGVtOnVzZXInXT8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gY2ZnIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBiZSBjcmVhdGVkXG4gICAqL1xuICBjcmVhdGUobmFtZTogc3RyaW5nLCBkYXRhOiB1bmtub3duLCBjb250ZXh0Pzogc3RyaW5nLCB1c2VyPzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPFNoZWxsQ29uZmlnPiB7XG4gICAgY29uc3QgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBbU0hFTExfQ09ORklHX0JBU0UubmFtZVByb3BlcnR5XTogbmFtZVxuICAgIH07XG4gICAgaWYgKHVzZXIpIHByb3BlcnRpZXNbJ3N5c3RlbTp1c2VyJ10gPSB1c2VyO1xuICAgIGlmIChjb250ZXh0KSBwcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddID0gY29udGV4dDtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZVxuICAgICAgLmNyZWF0ZURtc09iamVjdChcbiAgICAgICAgU0hFTExfQ09ORklHX0JBU0Uub2JqZWN0VHlwZSxcbiAgICAgICAge1xuICAgICAgICAgIFtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdOiBbU0hFTExfQ09ORklHX0JBU0Uuc2Vjb25kYXJ5T2JqZWN0VHlwZV0sXG4gICAgICAgICAgLi4ucHJvcGVydGllc1xuICAgICAgICB9LFxuICAgICAgICBbdGhpcy4jZGF0YVRvRmlsZShkYXRhKV0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiAoe1xuICAgICAgICAgIGlkOiByZXNbMF0sXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGRhdGEgb2YgYW4gZXhpc3RpbmcgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBpZCB0aGUgaWQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gZGF0YSB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZGF0YSB0byBiZSBzZXRcbiAgICovXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBkYXRhOiB1bmtub3duKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS51cGxvYWRDb250ZW50KGlkLCB0aGlzLiNkYXRhVG9GaWxlKGRhdGEpLCB1bmRlZmluZWQsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIG9mIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBkZWxldGVcbiAgICovXG4gIGRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS5kZWxldGVEbXNPYmplY3QoaWQpO1xuICB9XG5cbiAgZG93bmxvYWQoaWQ6IHN0cmluZywgZmlsZW5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNiYWNrZW5kLmRvd25sb2FkKHRoaXMuI2Rtc1NlcnZpY2UuZ2V0Q29udGVudFBhdGgoaWQpLCBmaWxlbmFtZSk7XG4gIH1cblxuICB1cGxvYWQoaWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBsb2FkQ29udGVudChpZCwgZmlsZSwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIGNvbmZpZ3VyYXRpb24gdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHRvIGJlIHRyYW5zZm9ybWVkXG4gICAqIEByZXR1cm5zIGEgZmlsZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvbiBkYXRhXG4gICAqL1xuICAjZGF0YVRvRmlsZShkYXRhOiB1bmtub3duKTogRmlsZSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlKFtKU09OLnN0cmluZ2lmeShkYXRhKV0sICdjb25maWcuanNvbicsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuICB9XG59XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtc2hlbGwtY29yZS9zcmMvbGliL3NlcnZpY2VzL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR3BGOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEMsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLE1BQVcsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLElBQUksQ0FDSCxxQkFBcUIsRUFDckI7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLHlCQUF5QixDQUFDLElBQUksQ0FBQzthQUMzQztTQUNGLEVBQ0QsT0FBTyxDQUFDLElBQUksQ0FDYjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNWLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIs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LENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDOytHQXRHVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlCYXNlLCBCYWNrZW5kU2VydmljZSwgQmFzZU9iamVjdFR5cGVGaWVsZCwgRG1zU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRTaGVsbENvbmZpZ1F1ZXJ5U3RyaW5nLCBTSEVMTF9DT05GSUdfQkFTRSB9IGZyb20gJy4vc2hlbGwtY29uZmlnLmNvbnN0JztcbmltcG9ydCB7IFNoZWxsQ29uZmlnIH0gZnJvbSAnLi9zaGVsbC1jb25maWcuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG1hbmFnZSBzaGVsbCBjb25maWd1cmF0aW9uIG9iamVjdHMuIEJhc2Ugb24gdGhlICdzeXN0ZW06aXRlbScgdHlwZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxDb25maWdTZXJ2aWNlIHtcbiAgI2Rtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gICNiYWNrZW5kID0gaW5qZWN0KEJhY2tlbmRTZXJ2aWNlKTtcblxuICBnZXQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxTaGVsbENvbmZpZyB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCBvYmplY3Q6IGFueTtcbiAgICByZXR1cm4gdGhpcy4jYmFja2VuZFxuICAgICAgLnBvc3QoXG4gICAgICAgICcvZG1zL29iamVjdHMvc2VhcmNoJyxcbiAgICAgICAge1xuICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICBzdGF0ZW1lbnQ6IGdldFNoZWxsQ29uZmlnUXVlcnlTdHJpbmcobmFtZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIEFwaUJhc2UuY29yZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcy5vYmplY3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgb2JqZWN0ID0gcmVzLm9iamVjdHNbMF07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvYmplY3QgPyBvYmplY3QucHJvcGVydGllc1tCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9JRF0udmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGlkKSA9PiAoaWQgPyB0aGlzLiNiYWNrZW5kLmdldChgL2Rtcy9vYmplY3RzLyR7aWR9L2NvbnRlbnRzL2ZpbGVgLCBBcGlCYXNlLmNvcmUpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgaWQ6IG9iamVjdC5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBvYmplY3QucHJvcGVydGllc1tTSEVMTF9DT05GSUdfQkFTRS5uYW1lUHJvcGVydHldLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IG9iamVjdC5wcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddPy52YWx1ZSxcbiAgICAgICAgICAgICAgICB1c2VyOiBvYmplY3QucHJvcGVydGllc1snc3lzdGVtOnVzZXInXT8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gY2ZnIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBiZSBjcmVhdGVkXG4gICAqL1xuICBjcmVhdGUobmFtZTogc3RyaW5nLCBkYXRhOiB1bmtub3duLCBjb250ZXh0Pzogc3RyaW5nLCB1c2VyPzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPFNoZWxsQ29uZmlnPiB7XG4gICAgY29uc3QgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBbU0hFTExfQ09ORklHX0JBU0UubmFtZVByb3BlcnR5XTogbmFtZVxuICAgIH07XG4gICAgaWYgKHVzZXIpIHByb3BlcnRpZXNbJ3N5c3RlbTp1c2VyJ10gPSB1c2VyO1xuICAgIGlmIChjb250ZXh0KSBwcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddID0gY29udGV4dDtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZVxuICAgICAgLmNyZWF0ZURtc09iamVjdChcbiAgICAgICAgU0hFTExfQ09ORklHX0JBU0Uub2JqZWN0VHlwZSxcbiAgICAgICAge1xuICAgICAgICAgIFtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdOiBbU0hFTExfQ09ORklHX0JBU0Uuc2Vjb25kYXJ5T2JqZWN0VHlwZV0sXG4gICAgICAgICAgLi4ucHJvcGVydGllc1xuICAgICAgICB9LFxuICAgICAgICBbdGhpcy4jZGF0YVRvRmlsZShkYXRhKV0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiAoe1xuICAgICAgICAgIGlkOiByZXNbMF0sXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGRhdGEgb2YgYW4gZXhpc3RpbmcgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBpZCB0aGUgaWQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gZGF0YSB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZGF0YSB0byBiZSBzZXRcbiAgICovXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBkYXRhOiB1bmtub3duKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS51cGxvYWRDb250ZW50KGlkLCB0aGlzLiNkYXRhVG9GaWxlKGRhdGEpLCB1bmRlZmluZWQsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIG9mIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBkZWxldGVcbiAgICovXG4gIGRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS5kZWxldGVEbXNPYmplY3QoaWQpO1xuICB9XG5cbiAgZG93bmxvYWQoaWQ6IHN0cmluZywgZmlsZW5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNiYWNrZW5kLmRvd25sb2FkKHRoaXMuI2Rtc1NlcnZpY2UuZ2V0Q29udGVudFBhdGgoaWQpLCBmaWxlbmFtZSk7XG4gIH1cblxuICB1cGxvYWQoaWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBsb2FkQ29udGVudChpZCwgZmlsZSwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIGNvbmZpZ3VyYXRpb24gdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHRvIGJlIHRyYW5zZm9ybWVkXG4gICAqIEByZXR1cm5zIGEgZmlsZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvbiBkYXRhXG4gICAqL1xuICAjZGF0YVRvRmlsZShkYXRhOiB1bmtub3duKTogRmlsZSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlKFtKU09OLnN0cmluZ2lmeShkYXRhKV0sICdjb25maWcuanNvbicsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuuvis/client-shell-core",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
@@ -8,10 +8,10 @@
8
8
  "@angular/core": "^19.2.1",
9
9
  "@angular/material": "^19.2.15",
10
10
  "rxjs": "^7.8.2",
11
- "@angular/platform-browser": "^19.2.1"
11
+ "@angular/platform-browser": "^19.2.1",
12
+ "@yuuvis/client-core": "^2.0.6"
12
13
  },
13
14
  "dependencies": {
14
- "@yuuvis/client-core": "2.0.4",
15
15
  "tslib": "^2.3.0"
16
16
  },
17
17
  "sideEffects": false,