aril 2.0.1-dev.2 → 2.0.1-dev.4

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 (25) hide show
  1. package/boot/bridge/src/mfe-bridge.d.ts +33 -0
  2. package/esm2022/boot/bridge/src/mfe-bridge.mjs +18 -1
  3. package/esm2022/boot/mfe/src/bootstrap.mjs +49 -5
  4. package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +12 -4
  5. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  6. package/esm2022/theme/layout/service/selection-group.service.mjs +151 -21
  7. package/fesm2022/aril-boot-bridge.mjs +17 -0
  8. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  9. package/fesm2022/{aril-boot-mfe-app.component-a34GeuUv.mjs → aril-boot-mfe-app.component-oxzMhRXe.mjs} +2 -2
  10. package/fesm2022/{aril-boot-mfe-app.component-a34GeuUv.mjs.map → aril-boot-mfe-app.component-oxzMhRXe.mjs.map} +1 -1
  11. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-KFO_X7yR.mjs → aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs} +50 -6
  12. package/fesm2022/aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs.map +1 -0
  13. package/fesm2022/aril-boot-mfe.mjs +1 -1
  14. package/fesm2022/aril-theme-layout.mjs +158 -21
  15. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  16. package/fesm2022/aril.mjs +48 -4
  17. package/fesm2022/aril.mjs.map +1 -1
  18. package/package.json +212 -212
  19. package/scripts/mf-shared.js +47 -0
  20. package/theme/layout/service/breadcrumb-publisher.service.ts +18 -8
  21. package/theme/layout/service/interfaces/interfaces.d.ts +3 -17
  22. package/theme/layout/service/interfaces/interfaces.ts +6 -18
  23. package/theme/layout/service/selection-group.service.d.ts +8 -4
  24. package/theme/layout/service/selection-group.service.ts +161 -25
  25. package/fesm2022/aril-boot-mfe-aril-boot-mfe-KFO_X7yR.mjs.map +0 -1
@@ -11,6 +11,26 @@ export interface Breadcrumb {
11
11
  label: string;
12
12
  url?: string;
13
13
  }
14
+ export interface SelectionItem {
15
+ id: number;
16
+ groupId: number;
17
+ selectionKey: string;
18
+ selectionDisplay: string;
19
+ showOrder: number;
20
+ parentSelectionKey: string;
21
+ selectionMultiLanguageDisplays?: Record<string, string>;
22
+ }
23
+ export interface SelectionGroupDTO {
24
+ id: number;
25
+ groupName: string;
26
+ groupDescription: string;
27
+ groupComment: string;
28
+ loadStrategy: string;
29
+ dynamicQuery: string;
30
+ parentGroupId: number;
31
+ selectionItems: SelectionItem[];
32
+ version?: number;
33
+ }
14
34
  export interface LegacyWindowSlots {
15
35
  activeHost?: Apps;
16
36
  activeMF?: Apps;
@@ -58,6 +78,19 @@ export declare class MfeBridge {
58
78
  * navigation'ları otomatik tab-aware olur, Strategy doğru tab handle'ını korur.
59
79
  */
60
80
  readonly activeTabId: import("@angular/core").WritableSignal<string>;
81
+ /**
82
+ * Enum (SelectionGroup) cache — cross-MFE paylaşımlı. `SelectionGroupService` her MFE/tab'da
83
+ * ayrı instance olsa da (Module Federation shared yok) hepsi bu tek state üzerinden okur/yazar
84
+ * → tek enum cache, tek `/versions` çağrısı, MFE'ler arası localStorage ezme yok.
85
+ */
86
+ readonly selectionGroups: import("@angular/core").WritableSignal<{
87
+ [key: string]: SelectionGroupDTO | null;
88
+ }>;
89
+ readonly selectionLoaded: Map<string, boolean>;
90
+ readonly selectionLoading: Map<string, boolean>;
91
+ /** Key başına ardışık fetch hatası sayısı — limit aşımında fetchEnum o key'i denemeyi bırakır. */
92
+ readonly selectionFailures: Map<string, number>;
93
+ selectionInitialized: boolean;
61
94
  hostNgZone: NgZone | null;
62
95
  hostRouter: Router | null;
63
96
  /**
@@ -35,6 +35,17 @@ export class MfeBridge {
35
35
  * navigation'ları otomatik tab-aware olur, Strategy doğru tab handle'ını korur.
36
36
  */
37
37
  this.activeTabId = signal('');
38
+ /**
39
+ * Enum (SelectionGroup) cache — cross-MFE paylaşımlı. `SelectionGroupService` her MFE/tab'da
40
+ * ayrı instance olsa da (Module Federation shared yok) hepsi bu tek state üzerinden okur/yazar
41
+ * → tek enum cache, tek `/versions` çağrısı, MFE'ler arası localStorage ezme yok.
42
+ */
43
+ this.selectionGroups = signal({});
44
+ this.selectionLoaded = new Map();
45
+ this.selectionLoading = new Map();
46
+ /** Key başına ardışık fetch hatası sayısı — limit aşımında fetchEnum o key'i denemeyi bırakır. */
47
+ this.selectionFailures = new Map();
48
+ this.selectionInitialized = false;
38
49
  this.hostNgZone = null;
39
50
  this.hostRouter = null;
40
51
  /**
@@ -85,6 +96,12 @@ export const bridge = (() => {
85
96
  if (!g[BRIDGE_SLOT]) {
86
97
  g[BRIDGE_SLOT] = new MfeBridge();
87
98
  }
99
+ const backfill = g[BRIDGE_SLOT];
100
+ backfill.selectionGroups ??= signal({});
101
+ backfill.selectionLoaded ??= new Map();
102
+ backfill.selectionLoading ??= new Map();
103
+ backfill.selectionFailures ??= new Map();
104
+ backfill.selectionInitialized ??= false;
88
105
  return g[BRIDGE_SLOT];
89
106
  })();
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZlLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvYm9vdC9icmlkZ2Uvc3JjL21mZS1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBMkIvRCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNVLGVBQVUsR0FBRyxNQUFNLENBQWMsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLE1BQU0sQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDN0MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBRyxNQUFNLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxNQUFNLENBQWUsRUFBRSxDQUFDLENBQUM7UUFDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQkc7UUFDTSxpQkFBWSxHQUFHLE1BQU0sQ0FBd0QsSUFBSSxFQUFFO1lBQzNGLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSztTQUNwRixDQUFDLENBQUM7UUFFSDs7Ozs7V0FLRztRQUNNLGdCQUFXLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDOzs7OztXQUtHO1FBQ0gsaUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBRTdCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFpQzFCLENBQUM7SUEvQkEsY0FBYztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixNQUFNLENBQUMsR0FBRyxNQUFvQyxDQUFDO1FBRS9DLENBQUMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxDQUFDLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUV2QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksU0FBUyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLFNBQVMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxTQUFTLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUU7WUFDbEMsWUFBWSxFQUFFLElBQUk7WUFDbEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVO1NBQzFCLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRTtZQUN0QyxZQUFZLEVBQUUsSUFBSTtZQUNsQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBRUQseUVBQXlFO0FBQ3pFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsbURBQW1EO0FBQ25ELE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBYyxDQUFDLEdBQUcsRUFBRTtJQUN0QyxNQUFNLENBQUMsR0FBRyxVQUF1QyxDQUFDO0lBQ2xELElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ1pvbmUsIFNpZ25hbCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBBcHBzLCBQbHVnaW5NZW51SXRlbSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlQ29uZmlnIHtcclxuXHRwYXRoOiBzdHJpbmc7XHJcblx0Y29udGVudDogc3RyaW5nO1xyXG5cdHZlcnNpb246IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iIHtcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdHVybD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMZWdhY3lXaW5kb3dTbG90cyB7XHJcblx0YWN0aXZlSG9zdD86IEFwcHM7XHJcblx0YWN0aXZlTUY/OiBBcHBzO1xyXG5cdGhvc3RNZW51SXRlbXM/OiBTaWduYWw8UGx1Z2luTWVudUl0ZW1bXT47XHJcblx0cGx1Z2luSnNvbj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG5cdHJvdXRlQ29uZmlncz86IFJvdXRlQ29uZmlnW107XHJcblx0bmdab25lPzogTmdab25lO1xyXG5cdGhvc3RSb3V0ZXI/OiBSb3V0ZXI7XHJcblx0X19BUklMX1BBR0VfVElUTEVfXz86IFNpZ25hbDxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWZlQnJpZGdlIHtcclxuXHRyZWFkb25seSBhY3RpdmVIb3N0ID0gc2lnbmFsPEFwcHMgfCBudWxsPihudWxsKTtcclxuXHRyZWFkb25seSBhY3RpdmVNRiA9IHNpZ25hbDxBcHBzIHwgbnVsbD4obnVsbCk7XHJcblx0cmVhZG9ubHkgaG9zdE1lbnVJdGVtcyA9IHNpZ25hbDxQbHVnaW5NZW51SXRlbVtdPihbXSk7XHJcblx0cmVhZG9ubHkgcGx1Z2luSnNvbiA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xyXG5cdHJlYWRvbmx5IHJvdXRlQ29uZmlncyA9IHNpZ25hbDxSb3V0ZUNvbmZpZ1tdIHwgbnVsbD4obnVsbCk7XHJcblx0cmVhZG9ubHkgcGFnZVRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cdHJlYWRvbmx5IGJyZWFkY3J1bWJzID0gc2lnbmFsPEJyZWFkY3J1bWJbXT4oW10pO1xyXG5cdC8qKlxyXG5cdCAqIEJpciBNRkUgUm91dGVyJ8SxbmRhIG9sYW4gc29uIGBOYXZpZ2F0aW9uRW5kYCdpbiBVUkwnaSB2ZSAqKmhhbmdpIHRhYidhIGFpdCBvbGR1xJ91KiouXHJcblx0ICogTUZFIGnDp2kgc2F5ZmEgacOnaSBuYXZpZ2F0aW9uJ2xhciBob3N0IFJvdXRlcidhIHlhbnPEsW1heWFiaWxpeW9yIOKGkiBgTmF2U2VydmljZWAgdGFiXHJcblx0ICogbmF2TGluaydpbmkgZ8O8bmNlbGxlbWVrIGnDp2luIGJ1IHNpZ25hbCfEsSBpemxlci5cclxuXHQgKlxyXG5cdCAqICoqTmVkZW4gdGFiSWQgdGHFn8SxeW9yKio6IEJpcmRlbiBmYXpsYSB0YWInxLFuIE1GRSBSb3V0ZXInxLEgYXN5bmMgZXZlbnQgdGV0aWtsZXllYmlsaXJcclxuXHQgKiAow7Zybi4gaGlkZGVuIGNvbnRhaW5lcidkYWtpIHRhYjIgYD9hY3RpdmVUYWI9MWAgcmVwbGFjZVN0YXRlIHlhcGFya2VuKS4gYGFjdGl2ZVRhYklkYCd5ZVxyXG5cdCAqIGJha2FyYWsgdXBkYXRlIHlhcGFyc2FrIHlhbmzEscWfIHRhYifEsSBrb250YW1pbmUgZWRlcml6LiBNZXNhamRhIGtheW5hayB0YWJJZCd5aSB0YcWfxLF5xLFwXHJcblx0ICogYE5hdlNlcnZpY2Uuc3luY0FjdGl2ZVRhYk5hdkxpbmtGb3JUYWIodGFiSWQsIHVybClgIGlsZSBzcGVzaWZpayB0YWInxLEgdXBkYXRlIGVkZXJpei5cclxuXHQgKlxyXG5cdCAqICoqQ3VzdG9tIGBlcXVhbGAqKjogQXBwQ29tcG9uZW50IGhlciBNRkUgTmF2aWdhdGlvbkVuZCdkZSBgc2V0KHt0YWJJZCwgdXJsfSlgIMOnYcSfxLFyxLFyO1xyXG5cdCAqIHllbmkgb2JqZWN0IHJlZmVyZW5jZSBvbGR1xJ91IGnDp2luIGRlZmF1bHQgcmVmZXJlbmNlLWVxdWFsaXR5IHJlLWVtaXQgZWRlci4gQnUgZHVydW1kYVxyXG5cdCAqIGF5bsSxIHRhYit1cmwgaWxlIHPDvHJla2xpIGVmZmVjdCB0ZXRpa2xlbmlyIOKGkiB0YWIgbmF2TGluaydpIGt1bGxhbsSxY8SxbsSxbiBhbmFzYXlmYXlhXHJcblx0ICogZ2XDp3RpxJ9pIGdpYmkgKGhvc3Qgcm91dGUnbGFyIE1GRSBOYXZpZ2F0aW9uRW5kIHRldGlrbGVtZXogYW1hIHNpZ25hbCBlc2tpIGRlxJ9lcmluZGVcclxuXHQgKiBrYWzEsXIpIHN0YXRlIGRlxJ9pxZ9pa2xpa2xlcmluaSBnZXJpIGFsxLFyLiBWYWx1ZS1lcXVhbGl0eSBpbGUgeWFsbsSxemNhIGdlcsOnZWsgVVJMXHJcblx0ICogZGXEn2nFn2lrbGlrbGVyaW5kZSB0ZXRpa2xlbnNpbi5cclxuXHQgKi9cclxuXHRyZWFkb25seSBhY3RpdmVNRkVVcmwgPSBzaWduYWw8eyB0YWJJZDogc3RyaW5nOyB1cmw6IHN0cmluZzsgdGl0bGU/OiBzdHJpbmcgfSB8IG51bGw+KG51bGwsIHtcclxuXHRcdGVxdWFsOiAoYSwgYikgPT4gYT8udGFiSWQgPT09IGI/LnRhYklkICYmIGE/LnVybCA9PT0gYj8udXJsICYmIGE/LnRpdGxlID09PSBiPy50aXRsZVxyXG5cdH0pO1xyXG5cclxuXHQvKipcclxuXHQgKiBBa3RpZiB0YWInxLFuIGB0YWJJZGAnc2kg4oCUIGBOYXZTZXJ2aWNlYCB0YWIgZGXEn2nFn2ltbGVyaW5kZSBnw7xuY2VsbGVyLlxyXG5cdCAqIFBsdWdpbiBSb3V0ZXIgcHJveHknbGVyaSAoYHByb3ZpZGVIb3N0Um91dGVyYCkgYnUgc2lnbmFsJ8SxIG9rdXl1cCBgbmF2aWdhdGVgL2BuYXZpZ2F0ZUJ5VXJsYFxyXG5cdCAqIMOnYcSfcsSxbGFyxLFuYSBgZXh0cmFzLnN0YXRlLl90YWJgIGVuamVrdGUgZWRlciDihpIgcGx1Z2luJ2xlcmluIHlhcHTEscSfxLEgdMO8bSBob3N0XHJcblx0ICogbmF2aWdhdGlvbidsYXLEsSBvdG9tYXRpayB0YWItYXdhcmUgb2x1ciwgU3RyYXRlZ3kgZG/En3J1IHRhYiBoYW5kbGUnxLFuxLEga29ydXIuXHJcblx0ICovXHJcblx0cmVhZG9ubHkgYWN0aXZlVGFiSWQgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG5cdGhvc3ROZ1pvbmU6IE5nWm9uZSB8IG51bGwgPSBudWxsO1xyXG5cdGhvc3RSb3V0ZXI6IFJvdXRlciB8IG51bGwgPSBudWxsO1xyXG5cdC8qKlxyXG5cdCAqIEhvc3QgKHNoZWxsKSBgTG9jYXRpb25gIHNlcnZpc2kuIEhvc3QgbW9kZGEgTUZFL3BsdWdpbiBjaGlsZCBpbmplY3RvcidsYXLEsW5kYW5cclxuXHQgKiBlcmnFn2lsZW1leiAoY2hpbGQgTG9jYXRpb24gaXpvbGUgYElzb2xhdGVkTG9jYXRpb25TdHJhdGVneWAneWUgYmHEn2zEsSk7IGJyb3dzZXJcclxuXHQgKiBhZHJlcyDDp3VidcSfdW5hIGByZXBsYWNlU3RhdGVgIGlsZSB5YXptYWsgaXN0ZXllbiBkaXJlY3RpdmUnbGVyICjDtnJuLiBgP2FjdGl2ZVRhYmBcclxuXHQgKiBzZW5rcm9uaXphc3lvbnUpIGJ1bnUga3VsbGFuxLFyLiBgaG9zdFJvdXRlcmAgaWxlIGF5bsSxIHBhdHRlcm4uXHJcblx0ICovXHJcblx0aG9zdExvY2F0aW9uOiBMb2NhdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRwcml2YXRlIG1pcnJvcmVkID0gZmFsc2U7XHJcblxyXG5cdG1pcnJvclRvV2luZG93KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMubWlycm9yZWQgfHwgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcclxuXHRcdHRoaXMubWlycm9yZWQgPSB0cnVlO1xyXG5cclxuXHRcdGNvbnN0IHcgPSB3aW5kb3cgYXMgV2luZG93ICYgTGVnYWN5V2luZG93U2xvdHM7XHJcblxyXG5cdFx0dy5ob3N0TWVudUl0ZW1zID0gdGhpcy5ob3N0TWVudUl0ZW1zO1xyXG5cdFx0dy5fX0FSSUxfUEFHRV9USVRMRV9fID0gdGhpcy5wYWdlVGl0bGU7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dy5hY3RpdmVIb3N0ID0gdGhpcy5hY3RpdmVIb3N0KCkgPz8gdW5kZWZpbmVkO1xyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR3LmFjdGl2ZU1GID0gdGhpcy5hY3RpdmVNRigpID8/IHVuZGVmaW5lZDtcclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dy5wbHVnaW5Kc29uID0gdGhpcy5wbHVnaW5Kc29uKCk7XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdHcucm91dGVDb25maWdzID0gdGhpcy5yb3V0ZUNvbmZpZ3MoKSA/PyB1bmRlZmluZWQ7XHJcblx0XHR9KTtcclxuXHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodywgJ25nWm9uZScsIHtcclxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6ICgpID0+IHRoaXMuaG9zdE5nWm9uZVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkodywgJ2hvc3RSb3V0ZXInLCB7XHJcblx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuXHRcdFx0Z2V0OiAoKSA9PiB0aGlzLmhvc3RSb3V0ZXJcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG5cclxuLy8gTW9kdWxlIEZlZGVyYXRpb24gc2hhcmVkIGNvbmZpZyBvbG1hZMSxxJ/EsSBkdXJ1bWxhciBpw6dpbiBnbG9iYWxUaGlzIHNsb3RcclxuLy8gw7x6ZXJpbmRlbiB0ZWsgaW5zdGFuY2UgZ2FyYW50aXNpLiBIb3N0IHZlIGhlciByZW1vdGUgTUZFIGF5csSxIGJ1bmRsZSBvbHNhXHJcbi8vIGJpbGUgYXluxLEgSlMgcmVhbG0naW5kZSBheW7EsSBpbnN0YW5jZSfEsSBva3VyIOKAlCBlc2tpIGdsb2JhbFRoaXMgc8O2emxlxZ9tZXNpbmluXHJcbi8vIHlhcHTEscSfxLEgZ8O2cmV2aSB0ZWsgYmlyIHRpcGxpIHNsb3R0YSBiaXJsZcWfdGlyaXIuXHJcbmNvbnN0IEJSSURHRV9TTE9UID0gJ19fYXJpbE1mZUJyaWRnZV9fJztcclxudHlwZSBCcmlkZ2VTbG90SG9zdCA9IHsgW0JSSURHRV9TTE9UXT86IE1mZUJyaWRnZSB9O1xyXG5leHBvcnQgY29uc3QgYnJpZGdlOiBNZmVCcmlkZ2UgPSAoKCkgPT4ge1xyXG5cdGNvbnN0IGcgPSBnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgQnJpZGdlU2xvdEhvc3Q7XHJcblx0aWYgKCFnW0JSSURHRV9TTE9UXSkge1xyXG5cdFx0Z1tCUklER0VfU0xPVF0gPSBuZXcgTWZlQnJpZGdlKCk7XHJcblx0fVxyXG5cdHJldHVybiBnW0JSSURHRV9TTE9UXSE7XHJcbn0pKCk7XHJcbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZlLWJyaWRnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvYm9vdC9icmlkZ2Uvc3JjL21mZS1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0QvRCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNVLGVBQVUsR0FBRyxNQUFNLENBQWMsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLE1BQU0sQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDN0MsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBRyxNQUFNLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxNQUFNLENBQWUsRUFBRSxDQUFDLENBQUM7UUFDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnQkc7UUFDTSxpQkFBWSxHQUFHLE1BQU0sQ0FBd0QsSUFBSSxFQUFFO1lBQzNGLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSztTQUNwRixDQUFDLENBQUM7UUFFSDs7Ozs7V0FLRztRQUNNLGdCQUFXLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTFDOzs7O1dBSUc7UUFDTSxvQkFBZSxHQUFHLE1BQU0sQ0FBOEMsRUFBRSxDQUFDLENBQUM7UUFDMUUsb0JBQWUsR0FBRyxJQUFJLEdB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ1pvbmUsIFNpZ25hbCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBBcHBzLCBQbHVnaW5NZW51SXRlbSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlQ29uZmlnIHtcclxuXHRwYXRoOiBzdHJpbmc7XHJcblx0Y29udGVudDogc3RyaW5nO1xyXG5cdHZlcnNpb246IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iIHtcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdHVybD86IHN0cmluZztcclxufVxyXG5cclxuLy8gU2VsZWN0aW9uLWdyb3VwIChlbnVtKSBtb2RlbGkg4oCUIGNhY2hlIHN0YXRlIChhxZ9hxJ/EsWRhIGBzZWxlY3Rpb25Hcm91cHNgKSBicmlkZ2UnZGUgeWHFn2FkxLHEn8SxbmRhblxyXG4vLyB0aXBpIGRlIGJ1cmFkYSB0YW7EsW1sYW7EsXI7IGB0aGVtZS9sYXlvdXRgIGJ1IHRpcGxlcmkgcmUtZXhwb3J0IGVkZXIgKGJyaWRnZeKGlHRoZW1lL2xheW91dCBjaXJjdWxhclxyXG4vLyBlbnRyeS1wb2ludCdpbmkgw7ZubGVtZWsgacOnaW4gYmHEn8SxbWzEsWzEsWsgdGVrIHnDtm5sw7w6IHRoZW1lL2xheW91dCDihpIgYnJpZGdlKS5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25JdGVtIHtcclxuXHRpZDogbnVtYmVyO1xyXG5cdGdyb3VwSWQ6IG51bWJlcjtcclxuXHRzZWxlY3Rpb25LZXk6IHN0cmluZztcclxuXHRzZWxlY3Rpb25EaXNwbGF5OiBzdHJpbmc7XHJcblx0c2hvd09yZGVyOiBudW1iZXI7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5OiBzdHJpbmc7XHJcblx0c2VsZWN0aW9uTXVsdGlMYW5ndWFnZURpc3BsYXlzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25Hcm91cERUTyB7XHJcblx0aWQ6IG51bWJlcjtcclxuXHRncm91cE5hbWU6IHN0cmluZztcclxuXHRncm91cERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblx0Z3JvdXBDb21tZW50OiBzdHJpbmc7XHJcblx0bG9hZFN0cmF0ZWd5OiBzdHJpbmc7XHJcblx0ZHluYW1pY1F1ZXJ5OiBzdHJpbmc7XHJcblx0cGFyZW50R3JvdXBJZDogbnVtYmVyO1xyXG5cdHNlbGVjdGlvbkl0ZW1zOiBTZWxlY3Rpb25JdGVtW107XHJcblx0dmVyc2lvbj86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMZWdhY3lXaW5kb3dTbG90cyB7XHJcblx0YWN0aXZlSG9zdD86IEFwcHM7XHJcblx0YWN0aXZlTUY/OiBBcHBzO1xyXG5cdGhvc3RNZW51SXRlbXM/OiBTaWduYWw8UGx1Z2luTWVudUl0ZW1bXT47XHJcblx0cGx1Z2luSnNvbj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG5cdHJvdXRlQ29uZmlncz86IFJvdXRlQ29uZmlnW107XHJcblx0bmdab25lPzogTmdab25lO1xyXG5cdGhvc3RSb3V0ZXI/OiBSb3V0ZXI7XHJcblx0X19BUklMX1BBR0VfVElUTEVfXz86IFNpZ25hbDxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWZlQnJpZGdlIHtcclxuXHRyZWFkb25seSBhY3RpdmVIb3N0ID0gc2lnbmFsPEFwcHMgfCBudWxsPihudWxsKTtcclxuXHRyZWFkb25seSBhY3RpdmVNRiA9IHNpZ25hbDxBcHBzIHwgbnVsbD4obnVsbCk7XHJcblx0cmVhZG9ubHkgaG9zdE1lbnVJdGVtcyA9IHNpZ25hbDxQbHVnaW5NZW51SXRlbVtdPihbXSk7XHJcblx0cmVhZG9ubHkgcGx1Z2luSnNvbiA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xyXG5cdHJlYWRvbmx5IHJvdXRlQ29uZmlncyA9IHNpZ25hbDxSb3V0ZUNvbmZpZ1tdIHwgbnVsbD4obnVsbCk7XHJcblx0cmVhZG9ubHkgcGFnZVRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cdHJlYWRvbmx5IGJyZWFkY3J1bWJzID0gc2lnbmFsPEJyZWFkY3J1bWJbXT4oW10pO1xyXG5cdC8qKlxyXG5cdCAqIEJpciBNRkUgUm91dGVyJ8SxbmRhIG9sYW4gc29uIGBOYXZpZ2F0aW9uRW5kYCdpbiBVUkwnaSB2ZSAqKmhhbmdpIHRhYidhIGFpdCBvbGR1xJ91KiouXHJcblx0ICogTUZFIGnDp2kgc2F5ZmEgacOnaSBuYXZpZ2F0aW9uJ2xhciBob3N0IFJvdXRlcidhIHlhbnPEsW1heWFiaWxpeW9yIOKGkiBgTmF2U2VydmljZWAgdGFiXHJcblx0ICogbmF2TGluaydpbmkgZ8O8bmNlbGxlbWVrIGnDp2luIGJ1IHNpZ25hbCfEsSBpemxlci5cclxuXHQgKlxyXG5cdCAqICoqTmVkZW4gdGFiSWQgdGHFn8SxeW9yKio6IEJpcmRlbiBmYXpsYSB0YWInxLFuIE1GRSBSb3V0ZXInxLEgYXN5bmMgZXZlbnQgdGV0aWtsZXllYmlsaXJcclxuXHQgKiAow7Zybi4gaGlkZGVuIGNvbnRhaW5lcidkYWtpIHRhYjIgYD9hY3RpdmVUYWI9MWAgcmVwbGFjZVN0YXRlIHlhcGFya2VuKS4gYGFjdGl2ZVRhYklkYCd5ZVxyXG5cdCAqIGJha2FyYWsgdXBkYXRlIHlhcGFyc2FrIHlhbmzEscWfIHRhYifEsSBrb250YW1pbmUgZWRlcml6LiBNZXNhamRhIGtheW5hayB0YWJJZCd5aSB0YcWfxLF5xLFwXHJcblx0ICogYE5hdlNlcnZpY2Uuc3luY0FjdGl2ZVRhYk5hdkxpbmtGb3JUYWIodGFiSWQsIHVybClgIGlsZSBzcGVzaWZpayB0YWInxLEgdXBkYXRlIGVkZXJpei5cclxuXHQgKlxyXG5cdCAqICoqQ3VzdG9tIGBlcXVhbGAqKjogQXBwQ29tcG9uZW50IGhlciBNRkUgTmF2aWdhdGlvbkVuZCdkZSBgc2V0KHt0YWJJZCwgdXJsfSlgIMOnYcSfxLFyxLFyO1xyXG5cdCAqIHllbmkgb2JqZWN0IHJlZmVyZW5jZSBvbGR1xJ91IGnDp2luIGRlZmF1bHQgcmVmZXJlbmNlLWVxdWFsaXR5IHJlLWVtaXQgZWRlci4gQnUgZHVydW1kYVxyXG5cdCAqIGF5bsSxIHRhYit1cmwgaWxlIHPDvHJla2xpIGVmZmVjdCB0ZXRpa2xlbmlyIOKGkiB0YWIgbmF2TGluaydpIGt1bGxhbsSxY8SxbsSxbiBhbmFzYXlmYXlhXHJcblx0ICogZ2XDp3RpxJ9pIGdpYmkgKGhvc3Qgcm91dGUnbGFyIE1GRSBOYXZpZ2F0aW9uRW5kIHRldGlrbGVtZXogYW1hIHNpZ25hbCBlc2tpIGRlxJ9lcmluZGVcclxuXHQgKiBrYWzEsXIpIHN0YXRlIGRlxJ9pxZ9pa2xpa2xlcmluaSBnZXJpIGFsxLFyLiBWYWx1ZS1lcXVhbGl0eSBpbGUgeWFsbsSxemNhIGdlcsOnZWsgVVJMXHJcblx0ICogZGXEn2nFn2lrbGlrbGVyaW5kZSB0ZXRpa2xlbnNpbi5cclxuXHQgKi9cclxuXHRyZWFkb25seSBhY3RpdmVNRkVVcmwgPSBzaWduYWw8eyB0YWJJZDogc3RyaW5nOyB1cmw6IHN0cmluZzsgdGl0bGU/OiBzdHJpbmcgfSB8IG51bGw+KG51bGwsIHtcclxuXHRcdGVxdWFsOiAoYSwgYikgPT4gYT8udGFiSWQgPT09IGI/LnRhYklkICYmIGE/LnVybCA9PT0gYj8udXJsICYmIGE/LnRpdGxlID09PSBiPy50aXRsZVxyXG5cdH0pO1xyXG5cclxuXHQvKipcclxuXHQgKiBBa3RpZiB0YWInxLFuIGB0YWJJZGAnc2kg4oCUIGBOYXZTZXJ2aWNlYCB0YWIgZGXEn2nFn2ltbGVyaW5kZSBnw7xuY2VsbGVyLlxyXG5cdCAqIFBsdWdpbiBSb3V0ZXIgcHJveHknbGVyaSAoYHByb3ZpZGVIb3N0Um91dGVyYCkgYnUgc2lnbmFsJ8SxIG9rdXl1cCBgbmF2aWdhdGVgL2BuYXZpZ2F0ZUJ5VXJsYFxyXG5cdCAqIMOnYcSfcsSxbGFyxLFuYSBgZXh0cmFzLnN0YXRlLl90YWJgIGVuamVrdGUgZWRlciDihpIgcGx1Z2luJ2xlcmluIHlhcHTEscSfxLEgdMO8bSBob3N0XHJcblx0ICogbmF2aWdhdGlvbidsYXLEsSBvdG9tYXRpayB0YWItYXdhcmUgb2x1ciwgU3RyYXRlZ3kgZG/En3J1IHRhYiBoYW5kbGUnxLFuxLEga29ydXIuXHJcblx0ICovXHJcblx0cmVhZG9ubHkgYWN0aXZlVGFiSWQgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVudW0gKFNlbGVjdGlvbkdyb3VwKSBjYWNoZSDigJQgY3Jvc3MtTUZFIHBheWxhxZ/EsW1sxLEuIGBTZWxlY3Rpb25Hcm91cFNlcnZpY2VgIGhlciBNRkUvdGFiJ2RhXHJcblx0ICogYXlyxLEgaW5zdGFuY2Ugb2xzYSBkYSAoTW9kdWxlIEZlZGVyYXRpb24gc2hhcmVkIHlvaykgaGVwc2kgYnUgdGVrIHN0YXRlIMO8emVyaW5kZW4gb2t1ci95YXphclxyXG5cdCAqIOKGkiB0ZWsgZW51bSBjYWNoZSwgdGVrIGAvdmVyc2lvbnNgIMOnYcSfcsSxc8SxLCBNRkUnbGVyIGFyYXPEsSBsb2NhbFN0b3JhZ2UgZXptZSB5b2suXHJcblx0ICovXHJcblx0cmVhZG9ubHkgc2VsZWN0aW9uR3JvdXBzID0gc2lnbmFsPHsgW2tleTogc3RyaW5nXTogU2VsZWN0aW9uR3JvdXBEVE8gfCBudWxsIH0+KHt9KTtcclxuXHRyZWFkb25seSBzZWxlY3Rpb25Mb2FkZWQgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcclxuXHRyZWFkb25seSBzZWxlY3Rpb25Mb2FkaW5nID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XHJcblx0LyoqIEtleSBiYcWfxLFuYSBhcmTEscWfxLFrIGZldGNoIGhhdGFzxLEgc2F5xLFzxLEg4oCUIGxpbWl0IGHFn8SxbcSxbmRhIGZldGNoRW51bSBvIGtleSdpIGRlbmVtZXlpIGLEsXJha8Sxci4gKi9cclxuXHRyZWFkb25seSBzZWxlY3Rpb25GYWlsdXJlcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XHJcblx0c2VsZWN0aW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcblx0aG9zdE5nWm9uZTogTmdab25lIHwgbnVsbCA9IG51bGw7XHJcblx0aG9zdFJvdXRlcjogUm91dGVyIHwgbnVsbCA9IG51bGw7XHJcblx0LyoqXHJcblx0ICogSG9zdCAoc2hlbGwpIGBMb2NhdGlvbmAgc2VydmlzaS4gSG9zdCBtb2RkYSBNRkUvcGx1Z2luIGNoaWxkIGluamVjdG9yJ2xhcsSxbmRhblxyXG5cdCAqIGVyacWfaWxlbWV6IChjaGlsZCBMb2NhdGlvbiBpem9sZSBgSXNvbGF0ZWRMb2NhdGlvblN0cmF0ZWd5YCd5ZSBiYcSfbMSxKTsgYnJvd3NlclxyXG5cdCAqIGFkcmVzIMOndWJ1xJ91bmEgYHJlcGxhY2VTdGF0ZWAgaWxlIHlhem1hayBpc3RleWVuIGRpcmVjdGl2ZSdsZXIgKMO2cm4uIGA/YWN0aXZlVGFiYFxyXG5cdCAqIHNlbmtyb25pemFzeW9udSkgYnVudSBrdWxsYW7EsXIuIGBob3N0Um91dGVyYCBpbGUgYXluxLEgcGF0dGVybi5cclxuXHQgKi9cclxuXHRob3N0TG9jYXRpb246IExvY2F0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cdHByaXZhdGUgbWlycm9yZWQgPSBmYWxzZTtcclxuXHJcblx0bWlycm9yVG9XaW5kb3coKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5taXJyb3JlZCB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xyXG5cdFx0dGhpcy5taXJyb3JlZCA9IHRydWU7XHJcblxyXG5cdFx0Y29uc3QgdyA9IHdpbmRvdyBhcyBXaW5kb3cgJiBMZWdhY3lXaW5kb3dTbG90cztcclxuXHJcblx0XHR3Lmhvc3RNZW51SXRlbXMgPSB0aGlzLmhvc3RNZW51SXRlbXM7XHJcblx0XHR3Ll9fQVJJTF9QQUdFX1RJVExFX18gPSB0aGlzLnBhZ2VUaXRsZTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR3LmFjdGl2ZUhvc3QgPSB0aGlzLmFjdGl2ZUhvc3QoKSA/PyB1bmRlZmluZWQ7XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdHcuYWN0aXZlTUYgPSB0aGlzLmFjdGl2ZU1GKCkgPz8gdW5kZWZpbmVkO1xyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR3LnBsdWdpbkpzb24gPSB0aGlzLnBsdWdpbkpzb24oKTtcclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dy5yb3V0ZUNvbmZpZ3MgPSB0aGlzLnJvdXRlQ29uZmlncygpID8/IHVuZGVmaW5lZDtcclxuXHRcdH0pO1xyXG5cclxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCAnbmdab25lJywge1xyXG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXHJcblx0XHRcdGdldDogKCkgPT4gdGhpcy5ob3N0Tmdab25lXHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCAnaG9zdFJvdXRlcicsIHtcclxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6ICgpID0+IHRoaXMuaG9zdFJvdXRlclxyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcblxyXG4vLyBNb2R1bGUgRmVkZXJhdGlvbiBzaGFyZWQgY29uZmlnIG9sbWFkxLHEn8SxIGR1cnVtbGFyIGnDp2luIGdsb2JhbFRoaXMgc2xvdFxyXG4vLyDDvHplcmluZGVuIHRlayBpbnN0YW5jZSBnYXJhbnRpc2kuIEhvc3QgdmUgaGVyIHJlbW90ZSBNRkUgYXlyxLEgYnVuZGxlIG9sc2FcclxuLy8gYmlsZSBheW7EsSBKUyByZWFsbSdpbmRlIGF5bsSxIGluc3RhbmNlJ8SxIG9rdXIg4oCUIGVza2kgZ2xvYmFsVGhpcyBzw7Z6bGXFn21lc2luaW5cclxuLy8geWFwdMSxxJ/EsSBnw7ZyZXZpIHRlayBiaXIgdGlwbGkgc2xvdHRhIGJpcmxlxZ90aXJpci5cclxuY29uc3QgQlJJREdFX1NMT1QgPSAnX19hcmlsTWZlQnJpZGdlX18nO1xyXG50eXBlIEJyaWRnZVNsb3RIb3N0ID0geyBbQlJJREdFX1NMT1RdPzogTWZlQnJpZGdlIH07XHJcblxyXG4vLyBTdGFnZ2VyZWQgZGVwbG95IGd1YXJkJ8SxIGnDp2luIG11dGFibGUgZ8O2csO8bsO8bTogc2xvdCd1IEVTS8SwIGJpciBhcmlsIGJ1aWxkJ2luaW4gTWZlQnJpZGdlJ2lcclxuLy8gZG9sZHVybXXFnyBvbGFiaWxpciAoYXBwJ2xlciBheXLEsSByZXBvbGFyZGFuIGJhxJ/EsW1zxLF6IGRlcGxveSBlZGlsaXI7IGFsYW4gbGlzdGVzaSBidWlsZCdsZXJcclxuLy8gYXJhc8SxIGdlbmnFn2xlcikuIFNvbnJhZGFuIGVrbGVuZW4gYWxhbmxhciBlc2tpIGluc3RhbmNlJ3RhIHlva3R1ciDihpIgYmFja2ZpbGwgZWRpbG1lenNlIHllbmlcclxuLy8gbGliJ2xpIGJ1bmRsZSBpbGsgb2t1bWFkYSBUeXBlRXJyb3IgYWzEsXIuIHJlYWRvbmx5IGNvbXBpbGUtdGltZSBrxLFzxLF0xLEgYnVyYWRhIGJpbGluw6dsaSBhxZ/EsWzEsXIuXHJcbnR5cGUgQnJpZGdlQmFja2ZpbGwgPSB7XHJcblx0c2VsZWN0aW9uR3JvdXBzPzogTWZlQnJpZGdlWydzZWxlY3Rpb25Hcm91cHMnXTtcclxuXHRzZWxlY3Rpb25Mb2FkZWQ/OiBNZmVCcmlkZ2VbJ3NlbGVjdGlvbkxvYWRlZCddO1xyXG5cdHNlbGVjdGlvbkxvYWRpbmc/OiBNZmVCcmlkZ2VbJ3NlbGVjdGlvbkxvYWRpbmcnXTtcclxuXHRzZWxlY3Rpb25GYWlsdXJlcz86IE1mZUJyaWRnZVsnc2VsZWN0aW9uRmFpbHVyZXMnXTtcclxuXHRzZWxlY3Rpb25Jbml0aWFsaXplZD86IGJvb2xlYW47XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgYnJpZGdlOiBNZmVCcmlkZ2UgPSAoKCkgPT4ge1xyXG5cdGNvbnN0IGcgPSBnbG9iYWxUaGlzIGFzIHVua25vd24gYXMgQnJpZGdlU2xvdEhvc3Q7XHJcblx0aWYgKCFnW0JSSURHRV9TTE9UXSkge1xyXG5cdFx0Z1tCUklER0VfU0xPVF0gPSBuZXcgTWZlQnJpZGdlKCk7XHJcblx0fVxyXG5cclxuXHRjb25zdCBiYWNrZmlsbCA9IGdbQlJJREdFX1NMT1RdIGFzIHVua25vd24gYXMgQnJpZGdlQmFja2ZpbGw7XHJcblx0YmFja2ZpbGwuc2VsZWN0aW9uR3JvdXBzID8/PSBzaWduYWw8eyBba2V5OiBzdHJpbmddOiBTZWxlY3Rpb25Hcm91cERUTyB8IG51bGwgfT4oe30pO1xyXG5cdGJhY2tmaWxsLnNlbGVjdGlvbkxvYWRlZCA/Pz0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XHJcblx0YmFja2ZpbGwuc2VsZWN0aW9uTG9hZGluZyA/Pz0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XHJcblx0YmFja2ZpbGwuc2VsZWN0aW9uRmFpbHVyZXMgPz89IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XHJcblx0YmFja2ZpbGwuc2VsZWN0aW9uSW5pdGlhbGl6ZWQgPz89IGZhbHNlO1xyXG5cclxuXHRyZXR1cm4gZ1tCUklER0VfU0xPVF0hO1xyXG59KSgpO1xyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Location, LocationStrategy } from '@angular/common';
2
2
  import { HttpClient } from '@angular/common/http';
3
- import { APP_INITIALIZER, ApplicationRef, createComponent, createEnvironmentInjector, importProvidersFrom, isDevMode, ɵINJECTOR_SCOPE } from '@angular/core';
3
+ import { APP_INITIALIZER, ApplicationRef, EnvironmentInjector, createComponent, createEnvironmentInjector, importProvidersFrom, inject, isDevMode, ɵINJECTOR_SCOPE } from '@angular/core';
4
4
  import { createApplication } from '@angular/platform-browser';
5
5
  import { RouteReuseStrategy, Router, UrlSerializer, provideRouter, withComponentInputBinding, withRouterConfig } from '@angular/router';
6
6
  import { ConfirmationService, MessageService, PrimeNGConfig } from 'primeng/api';
@@ -111,9 +111,41 @@ export const boot = (_appName, _routes, _menuItems) => {
111
111
  // detection almaz. AppComponent'i biz açıkça `sharedAppRef.attachView` ile bağladığımız için
112
112
  // çalışır; ama `inject(ApplicationRef)` yapan üçüncü taraf kod (PrimeNG `DialogService` →
113
113
  // `this.appRef.attachView`) child-local sahte appRef'i alıp dialog'u ona bağlıyordu → dialog
114
- // yaratılıyor ama `*ngIf="visible"` hiç render edilmiyordu (boş açılıyordu). Gerçek (tek,
115
- // tick alan) `sharedAppRef`'e sabitliyoruz.
116
- { provide: ApplicationRef, useFactory: () => sharedAppRef },
114
+ // yaratılıyor ama `*ngIf="visible"` hiç render edilmiyordu (boş açılıyordu).
115
+ //
116
+ // Çözüm `sharedAppRef`'i saran Proxy: TÜM üyeler (attachView/detachView/tick/components…)
117
+ // gerçek `sharedAppRef`'e delege olur (method'lar `target`'a bind'li → private field dahil
118
+ // doğru `this`), TEK fark `.injector` → bu tab'ın child injector'ı. Neden kritik: PrimeNG
119
+ // `DialogService` dialog'u `createComponent(..., { environmentInjector: this.appRef.injector })`
120
+ // ile yaratır. Düz `sharedAppRef` dönersek dialog içeriği shared ROOT'ta çözülür, sayfa ise
121
+ // child injector'da → `providedIn:'root'` her servis İKİ ayrı instance olur (split-brain) ve
122
+ // BehaviorSubject tabanlı sayfa↔dialog state senkronize OLMAZ (seçili kayıt dialog'da null).
123
+ // `.injector`'ı child'a yönlendirince dialog içeriği sayfayla AYNI injector'da çözer → otomatik
124
+ // tek instance, TÜM (mevcut+gelecek) servisler için — servis listesi tutmaya gerek yok.
125
+ // `attachView` yine `sharedAppRef`'e gittiği için tek tick döngüsü/change detection korunur.
126
+ {
127
+ provide: ApplicationRef,
128
+ useFactory: () => {
129
+ const tabInjector = inject(EnvironmentInjector);
130
+ return new Proxy(sharedAppRef, {
131
+ get(target, prop) {
132
+ if (prop === 'injector')
133
+ return tabInjector;
134
+ // `ngOnDestroy`'u GİZLE (undefined döndür). Aksi halde `inject(ApplicationRef)`
135
+ // yapan tab child injector'ı (PrimeNG DialogService veya aşağıdaki dev guard)
136
+ // proxy'yi kendi `_ngOnDestroyHooks`'una kaydeder (R3Injector.hydrate →
137
+ // hasOnDestroy=true) ve tab kapanışında `childInjector.destroy()` →
138
+ // `sharedAppRef.ngOnDestroy()` → açık TÜM tab'ların view'larını destroy edip
139
+ // shared app'i öldürür. Shared app'in lifecycle'ı bootstrap'a aittir, tab'a değil
140
+ // (gerçek `sharedAppRef.ngOnDestroy` etkilenmez; yalnızca proxy üzerinden gizlenir).
141
+ if (prop === 'ngOnDestroy')
142
+ return undefined;
143
+ const value = Reflect.get(target, prop, target);
144
+ return typeof value === 'function' ? value.bind(target) : value;
145
+ }
146
+ });
147
+ }
148
+ },
117
149
  // Tarama (log15) ile saptanan, child-local olunca bozulan ek `providedIn:'root'` servisleri:
118
150
  // • PubSubService — MFE'nin `breadcrumbUpdated` event'i host `history.service`'e ulaşmalı;
119
151
  // child-local olunca MFE↔host event köprüsü kopuyordu.
@@ -127,6 +159,10 @@ export const boot = (_appName, _routes, _menuItems) => {
127
159
  // görünmez. Shared instance ile tüm `<p-toast key="toast-root">` container'ları aynı kuyruğu dinler.
128
160
  { provide: MessageService, useFactory: () => sharedAppRef.injector.get(MessageService) },
129
161
  { provide: ConfirmationService, useFactory: () => sharedAppRef.injector.get(ConfirmationService) }
162
+ // SelectionGroupService bilinçli olarak BURADA YOK: tüm state'i (signal + loaded/loading +
163
+ // init flag'i) globalThis bridge'de yaşar; child-local instance'lar da aynı state'i alias'lar,
164
+ // bu yüzden instance sayısının önemi yoktur — forwarding yalnızca instance-local state'i olan
165
+ // servisler (MessageService vb.) için gereklidir.
130
166
  ];
131
167
  const appComponentPromise = appComponentLoader();
132
168
  class MFEAppElement extends HTMLElement {
@@ -166,6 +202,14 @@ export const boot = (_appName, _routes, _menuItems) => {
166
202
  console.error(`[boot:${_appName}] HİBRİT İZOLASYON BOZULDU: child Router shared root ile aynı instance! ` +
167
203
  `ɵINJECTOR_SCOPE davranışı değişmiş olabilir (Angular upgrade?) — tab izolasyonu çalışmaz.`);
168
204
  }
205
+ // [Dialog injector köprüsü guard — kalıcı] ApplicationRef proxy'sinin `.injector`'ı bu
206
+ // tab'ın child injector'ını göstermeli; aksi halde PrimeNG DialogService dialog içeriğini
207
+ // shared root'ta çözer → sayfa↔dialog `providedIn:'root'` split-brain geri döner. PrimeNG
208
+ // ya da Angular upgrade'i `appRef.injector` kullanımını değiştirirse burada yakalanır.
209
+ if (isDevMode() && this.childInjector.get(ApplicationRef).injector !== this.childInjector) {
210
+ console.error(`[boot:${_appName}] DIALOG INJECTOR KÖPRÜSÜ BOZULDU: ApplicationRef.injector tab child ` +
211
+ `injector'ı göstermiyor — dialog içeriği sayfadan farklı injector'da çözülür (split-brain).`);
212
+ }
169
213
  // AppComponent'i child injector context'inde yarat → inject(Router)/LocationStrategy
170
214
  // child-local; inject(MfeBridge)/HttpClient/Keycloak/TranslocoService vb. parent'tan
171
215
  // paylaşımlı. `attachView` shared app'in change detection döngüsüne bağlar. (`bootstrap`
@@ -232,4 +276,4 @@ export const boot = (_appName, _routes, _menuItems) => {
232
276
  throw e;
233
277
  }
234
278
  };
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L21mZS9zcmMvYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFFZixjQUFjLEVBS2QsZUFBZSxFQUNmLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIsU0FBUyxFQUNULGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBRU4sa0JBQWtCLEVBQ2xCLE1BQU0sRUFFTixhQUFhLEVBQ2IsYUFBYSxFQUNiLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFRLHdCQUF3QixFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENB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LE9BQU87UUFDUixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVCxDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24sIExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG5cdEFQUF9JTklUSUFMSVpFUixcclxuXHRBcHBsaWNhdGlvbkNvbmZpZyxcclxuXHRBcHBsaWNhdGlvblJlZixcclxuXHRDb21wb25lbnRSZWYsXHJcblx0RW52aXJvbm1lbnRJbmplY3RvcixcclxuXHRFbnZpcm9ubWVudFByb3ZpZGVycyxcclxuXHRQcm92aWRlcixcclxuXHRjcmVhdGVDb21wb25lbnQsXHJcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcclxuXHRpbXBvcnRQcm92aWRlcnNGcm9tLFxyXG5cdGlzRGV2TW9kZSxcclxuXHTJtUlOSkVDVE9SX1NDT1BFXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7XHJcblx0Q2hpbGRyZW5PdXRsZXRDb250ZXh0cyxcclxuXHRSb3V0ZVJldXNlU3RyYXRlZ3ksXHJcblx0Um91dGVyLFxyXG5cdFJvdXRlcyxcclxuXHRVcmxTZXJpYWxpemVyLFxyXG5cdHByb3ZpZGVSb3V0ZXIsXHJcblx0d2l0aENvbXBvbmVudElucHV0QmluZGluZyxcclxuXHR3aXRoUm91dGVyQ29uZmlnXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLCBQcmltZU5HQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBNb25hY29FZGl0b3JNb2R1bGUsIE5HWF9NT05BQ09fRURJVE9SX0NPTkZJRyB9IGZyb20gJ25neC1tb25hY28tZWRpdG9yLXYyJztcclxuXHJcbmltcG9ydCB7IGNyZWF0ZUJhc2VBcHBDb25maWcgfSBmcm9tICdhcmlsL2Jvb3QvYmFzZSc7XHJcbmltcG9ydCB7IHNldEFwaUNvbmZpZ09uTUZFTW9kZSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgQXBwcywgQ3VzdG9tUm91dGVSZXVzZVN0cmF0ZWd5LCBQbHVnaW5NZW51SXRlbSwgVGFiQXdhcmVVcmxTZXJpYWxpemVyIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcHBzJztcclxuaW1wb3J0IHsgZ2V0Tmdab25lLCBsb2FkUGx1Z2lucyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvcGx1Z2lucyc7XHJcbmltcG9ydCB7IGkxOG5Gb2xkZXJOYW1lIH0gZnJvbSAnYXJpbC9pMThuJztcclxuaW1wb3J0IHsgcHJvdmlkZUhvc3QgfSBmcm9tICdhcmlsL3Byb3ZpZGVyJztcclxuaW1wb3J0IHsgUHViU3ViU2VydmljZSB9IGZyb20gJ2FyaWwvdXRpbC9wdWItc3ViJztcclxuXHJcbmltcG9ydCB7IGFwcENvbXBvbmVudExvYWRlciB9IGZyb20gJy4vYXBwQ29tcG9uZW50TG9hZGVyJztcclxuaW1wb3J0IHsgSXNvbGF0ZWRMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9pc29sYXRlZC1sb2NhdGlvbi1zdHJhdGVneSc7XHJcbmltcG9ydCB7IG1vbmFjb0NvbmZpZyB9IGZyb20gJy4vbW9uYWNvLmNvbmZpZyc7XHJcblxyXG5leHBvcnQgdmFyIGFwcE5hbWU6IEFwcHM7XHJcbmV4cG9ydCB2YXIgbWVudUl0ZW1zOiBQbHVnaW5NZW51SXRlbVtdID0gW107XHJcblxyXG4vKipcclxuICogYGJvb3RgIMOnYcSfcsSxbGFyxLFuxLFuIGlkZW1wb3RlbnQga2FsbWFzxLFuxLEgc2HEn2xheWFuIHN5bmMgZ3VhcmQuIEF5bsSxIHJlbW90ZSBpw6dpblxyXG4gKiBiaXJkZW4gZmF6bGEgcGFyYWxlbCBgYm9vdCgnd2RtJywgLi4uKWAgw6dhxJ9yxLFzxLEgZ2VsZGnEn2luZGUsIGlsayBgY3VzdG9tRWxlbWVudHMuZGVmaW5lYFxyXG4gKiB0YW1hbWxhbm1hZGFuIGlraW5jaSDDp2HEn3LEsSBgY3VzdG9tRWxlbWVudHMuZ2V0YCBndWFyZCfEsW7EsSBnZcOnaXlvcmR1IOKGkiBoZXIgaWtpc2kgZGVcclxuICogZGVmaW5lIGV0bWV5ZSDDp2FsxLHFn8SxcCBgTm90U3VwcG9ydGVkRXJyb3I6IHRoZSBuYW1lIFwiYXBwLXdkbVwiIGhhcyBhbHJlYWR5IGJlZW4gdXNlZGBcclxuICogaGF0YXPEsSBmxLFybGF0xLFsxLF5b3JkdS4gU2V0IGlsZSBzeW5jIG1hcmsgZWRlcmVrIHRlayBiaXIgZGVmaW5lIGN5Y2xlJ8SxIGdhcmFudGkgZWRpeW9ydXouXHJcbiAqL1xyXG5jb25zdCBib290ZWRBcHBzID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG5leHBvcnQgY29uc3QgYm9vdCA9IChfYXBwTmFtZTogQXBwcywgX3JvdXRlczogUm91dGVzLCBfbWVudUl0ZW1zOiBQbHVnaW5NZW51SXRlbVtdKSA9PiB7XHJcblx0aWYgKGJvb3RlZEFwcHMuaGFzKF9hcHBOYW1lKSB8fCBjdXN0b21FbGVtZW50cy5nZXQoYGFwcC0ke19hcHBOYW1lfWApKSByZXR1cm47XHJcblx0Ym9vdGVkQXBwcy5hZGQoX2FwcE5hbWUpO1xyXG5cclxuXHRhcHBOYW1lID0gX2FwcE5hbWU7XHJcblx0bWVudUl0ZW1zID0gX21lbnVJdGVtcztcclxuXHJcblx0LyoqXHJcblx0ICogKipQYXlsYcWfxLFsYW4gYmFzZSBjb25maWcqKiDigJQgcmVtb3RlIGJhxZ/EsW5hIFRFSyBgY3JlYXRlQXBwbGljYXRpb25gLiBBxJ/EsXIgc2VydmlzbGVyXHJcblx0ICogKEh0dHBDbGllbnQgKyBpbnRlcmNlcHRvciBjaGFpbiwgS2V5Y2xvYWssIGkxOG4vVHJhbnNsb2NvLCBNb25hY28sIGFuaW1hdGlvbnMpIGJ1cmFkYVxyXG5cdCAqIHlhxZ9hcjsgYHByb3ZpZGVkSW5gIHRhxZ/EsW1heWFuIGV4cGxpY2l0IHByb3ZpZGVyIG9sZHVrbGFyxLEgacOnaW4gdMO8bSB0YWInbGFyxLFuIGNoaWxkXHJcblx0ICogaW5qZWN0b3InbGFyxLFuZGFuIHBhcmVudCBvbGFyYWsgcGF5bGHFn8SxbMSxciDihpIgUkFNIGxpbmVlciBiw7x5w7xtZXouIFJvdXRlci9Mb2NhdGlvbi9cclxuXHQgKiBSZXVzZVN0cmF0ZWd5L1VybFNlcmlhbGl6ZXIgYnVyYWRhIFlPSzsgb25sYXIgdGFiIGJhxZ/EsW5hIGl6b2xlIGNoaWxkIGluamVjdG9yJ2RhIHZlcmlsaXIuXHJcblx0ICovXHJcblx0Y29uc3Qgc2hhcmVkQmFzZUNvbmZpZzogQXBwbGljYXRpb25Db25maWcgPSB7XHJcblx0XHRwcm92aWRlcnM6IFtcclxuXHRcdFx0Y3JlYXRlQmFzZUFwcENvbmZpZyh7IGkxOG5Gb2xkZXI6IF9hcHBOYW1lIH0pLFxyXG5cdFx0XHRwcm92aWRlSG9zdChfYXBwTmFtZSksXHJcblx0XHRcdGdldE5nWm9uZSgpLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG5cdFx0XHRcdHVzZUZhY3Rvcnk6IChodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLCBmb2xkZXJOYW1lOiB0eXBlb2YgaTE4bkZvbGRlck5hbWUpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHJ1bkFwaUluaXQgPSBzZXRBcGlDb25maWdPbk1GRU1vZGUoaHR0cENsaWVudCwga2V5Y2xvYWssIGZvbGRlck5hbWUgYXMgdW5rbm93biBhcyBBcHBzKTtcclxuXHRcdFx0XHRcdGNvbnN0IHJ1bkxvYWRQbHVnaW5zID0gbG9hZFBsdWdpbnMoKTtcclxuXHRcdFx0XHRcdHJldHVybiBhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGF3YWl0IHJ1bkFwaUluaXQoKTtcclxuXHRcdFx0XHRcdFx0cnVuTG9hZFBsdWdpbnMoKTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdFx0XHRkZXBzOiBbSHR0cENsaWVudCwgS2V5Y2xvYWtTZXJ2aWNlLCBpMThuRm9sZGVyTmFtZV1cclxuXHRcdFx0fSxcclxuXHRcdFx0aW1wb3J0UHJvdmlkZXJzRnJvbShNb25hY29FZGl0b3JNb2R1bGUuZm9yUm9vdCgpKSxcclxuXHRcdFx0eyBwcm92aWRlOiBOR1hfTU9OQUNPX0VESVRPUl9DT05GSUcsIHVzZVZhbHVlOiBtb25hY29Db25maWcgfVxyXG5cdFx0XVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW90ZSBiYcWfxLFuYSBURUsgcGF5bGHFn8SxbGFuIGBBcHBsaWNhdGlvblJlZmAg4oCUIGNsb3N1cmUtc2NvcGUuIMSwbGsgYDxhcHAtJHthcHBOYW1lfT5gXHJcblx0ICogZWxlbWVudCdpIGBjcmVhdGVBcHBsaWNhdGlvbihzaGFyZWRCYXNlQ29uZmlnKWAgw6dhxJ/EsXLEsXIsIHNvbnJha2kgdMO8bSBlbGVtZW50J2xlciBheW7EsVxyXG5cdCAqIHByb21pc2UnxLEgYmVrbGVyIChkdXBsaWNhdGUgQXBwbGljYXRpb24geWFyYXTEsW3EsSBpbWvDom5zxLF6KS4gSGVyIGVsZW1lbnQga2VuZGkgY2hpbGRcclxuXHQgKiBpbmplY3RvciArIGBjcmVhdGVDb21wb25lbnRgIGlsZSBrZW5kaSBgQXBwQ29tcG9uZW50YCB2aWV3J8SxbsSxIHlhcmF0xLFwIHNoYXJlZCBhcHAnZVxyXG5cdCAqIGBhdHRhY2hWaWV3YCBpbGUgYmHEn2xhci4gU2hhcmVkIGFwcCB1enVuIMO2bcO8cmzDvGTDvHIgKHRhYidsYXIga2FwYW5zYSBkYSBkZXN0cm95IGVkaWxtZXopLlxyXG5cdCAqXHJcblx0ICogYGNoaWxkUHJvdmlkZXJzYCd0YWtpIGBUcmFuc2xvY29TZXJ2aWNlYCBmYWN0b3J5J3NpIGJ1IHJlZmVyYW5zxLEga3VsbGFuZMSxxJ/EsSBpw6dpblxyXG5cdCAqIGBjaGlsZFByb3ZpZGVyc2AndGFuIMOWTkNFIHRhbsSxbWxhbsSxciAoZm9yd2FyZCBURFoneWkgw7ZubGVyKS5cclxuXHQgKi9cclxuXHRsZXQgc2hhcmVkQXBwUmVmOiBBcHBsaWNhdGlvblJlZiB8IG51bGwgPSBudWxsO1xyXG5cdGxldCBzaGFyZWRBcHBQcm9taXNlOiBQcm9taXNlPEFwcGxpY2F0aW9uUmVmPiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHQvKipcclxuXHQgKiAqKlRhYiBiYcWfxLFuYSBpem9sZSBSb3V0ZXIgc3RhY2sqKiDigJQgaGVyIGA8YXBwLSR7YXBwTmFtZX0+YCBrZW5kaSBjaGlsZFxyXG5cdCAqIGBFbnZpcm9ubWVudEluamVjdG9yYCfEsW5kYSBidW5sYXLEsSBhbMSxci4gYMm1SU5KRUNUT1JfU0NPUEU6ICdyb290J2AgY2hpbGQnxLEgJ3Jvb3QnXHJcblx0ICogc2NvcGUgeWFwYXIgKEFuZ3VsYXIgYFIzSW5qZWN0b3JgIGN0b3I6IGBzY29wZXMuYWRkKCdyb290JylgKTsgYsO2eWxlY2UgYHByb3ZpZGVSb3V0ZXJgJ8SxblxyXG5cdCAqIGluamVjdCBldHRpxJ9pIGBwcm92aWRlZEluOidyb290J2AgUm91dGVyIHNlcnZpc2xlcmkg4oCUIGBSb3V0ZXJgLCBgQ2hpbGRyZW5PdXRsZXRDb250ZXh0c2AsXHJcblx0ICogYExvY2F0aW9uYCwgYE5hdmlnYXRpb25UcmFuc2l0aW9uc2AgdmIuIOKAlCBjaGlsZC1MT0NBTCDDvHJldGlsaXIuIFNvbnXDpzogaGVyIHRhYiBrZW5kaVxyXG5cdCAqIFJvdXRlciArIGtlbmRpIGBSb3V0ZXJPdXRsZXRgIGNvbnRleHQnaW5lIHNhaGlwIG9sdXIg4oaSICoqMSBSb3V0ZXIgOiAxIG91dGxldCoqLlxyXG5cdCAqXHJcblx0ICogTmVkZW4gZ2VyZWtsaTogcGF5bGHFn8SxbGFuIHRlayBBcHBsaWNhdGlvbidkYSBOIGA8cm91dGVyLW91dGxldD5gIGF5bsSxIHRla1xyXG5cdCAqIGBDaGlsZHJlbk91dGxldENvbnRleHRzYCdlIFwicHJpbWFyeVwiIGRpeWUga2F5ZG9sdXAgYmlyYmlyaW5pIGV6aXlvcmR1IChgY29udGV4dHMuc2V0YFxyXG5cdCAqIG92ZXJ3cml0ZSkg4oaSIHRhYiBnZcOnacWfaSBzb25yYXPEsSBheW7EsSB0YWIgacOnaSBuYXZpZ2FzeW9uIChsaXN04oaSZGV0YWlsKSB5YW5sxLHFnyBvdXRsZXQnZVxyXG5cdCAqIHJlbmRlciBvbHV5b3JkdS4gQ2hpbGQtaW5qZWN0b3IgaXpvbGFzeW9udSBidW51IGvDtmt0ZW4gw6fDtnplci5cclxuXHQgKlxyXG5cdCAqICoqVHJhbnNsb2NvU2VydmljZSBpc3Rpc25hc8SxKio6IGAncm9vdCdgIHNjb3BlIG9udSBkYSBjaGlsZC1sb2NhbCB5YXBhcmTEsTsgYW1hIGdsb2JhbFxyXG5cdCAqIChzY29wZSdzdXopIMOnZXZpcmlsZXIgc2hhcmVkIGFwcCdpbiBpbml0IGFrxLHFn8SxbmRhIHnDvGtsZW5kacSfaW5kZW4g4oCUIGBjcmVhdGVDb21wb25lbnRgXHJcblx0ICogYEFQUF9JTklUSUFMSVpFUmAgw6dhbMSxxZ90xLFybWF6IOKAlCBjaGlsZC1sb2NhbCBzZXJ2aWNlJ2luIGdsb2JhbCBjYWNoZSdpIGJvxZ8ga2FsxLFwIGhhbSBrZXlcclxuXHQgKiBnw7ZzdGVyaXlvcmR1LiBUYWIgYmHFn8SxbmEgYXlyxLEgZGlsIHNlbmFyeW9zdSB5b2s7IHNlcnZpY2UnaSBzaGFyZWQgYXBwJ3RlbiBwYXlsYcWfdMSxcsSxeW9ydXpcclxuXHQgKiAoZ2xvYmFsIMOnZXZpcmkgdGVrIHllcmRlIHnDvGtsZW5pciwgdGVrIHRyYW5zbGF0aW9uIGNhY2hlIOKGkiBlayBSQU0ga2F6YW5jxLEpLiBTY29wZSDDp2V2aXJpbGVyaVxyXG5cdCAqIChgcHJvdmlkZWkxOG5TY29wZWApIGNvbXBvbmVudC1sZXZlbCBzYcSfbGFuZMSxxJ/EsSBpw6dpbiBwYXlsYcWfxLFsYW4gc2VydmljZSdsZSBkZSDDp2FsxLHFn8Sxci5cclxuXHQgKlxyXG5cdCAqIE5PVDogYMm1SU5KRUNUT1JfU0NPUEVgIEFuZ3VsYXIgcHJpdmF0ZSBBUEknc2lkaXI7IG1pbm9yIHPDvHLDvG0gecO8a3NlbHRtZWxlcmluZGUgZGF2cmFuxLHFn8SxXHJcblx0ICogZG/En3J1bGFubWFsxLEgKGHFn2HEn8SxZGFraSBQT0MgaXpvbGFzeW9uIGxvZyd1IGJ1bnVuIGnDp2luIGLEsXJha8SxbGTEsSkuXHJcblx0ICovXHJcblx0Y29uc3QgY2hpbGRQcm92aWRlcnM6IEFycmF5PFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnM+ID0gW1xyXG5cdFx0eyBwcm92aWRlOiDJtUlOSkVDVE9SX1NDT1BFLCB1c2VWYWx1ZTogJ3Jvb3QnIH0sXHJcblx0XHRwcm92aWRlUm91dGVyKFxyXG5cdFx0XHRfcm91dGVzLFxyXG5cdFx0XHR3aXRoQ29tcG9uZW50SW5wdXRCaW5kaW5nKCksXHJcblx0XHRcdHdpdGhSb3V0ZXJDb25maWcoeyBvblNhbWVVcmxOYXZpZ2F0aW9uOiAncmVsb2FkJyB9KVxyXG5cdFx0KSxcclxuXHRcdHsgcHJvdmlkZTogTG9jYXRpb25TdHJhdGVneSwgdXNlQ2xhc3M6IElzb2xhdGVkTG9jYXRpb25TdHJhdGVneSB9LFxyXG5cdFx0eyBwcm92aWRlOiBMb2NhdGlvbiwgdXNlQ2xhc3M6IExvY2F0aW9uIH0sXHJcblx0XHR7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlRXhpc3Rpbmc6IEN1c3RvbVJvdXRlUmV1c2VTdHJhdGVneSB9LFxyXG5cdFx0eyBwcm92aWRlOiBVcmxTZXJpYWxpemVyLCB1c2VFeGlzdGluZzogVGFiQXdhcmVVcmxTZXJpYWxpemVyIH0sXHJcblx0XHR7IHByb3ZpZGU6IFRyYW5zbG9jb1NlcnZpY2UsIHVzZUZhY3Rvcnk6ICgpID0+IHNoYXJlZEFwcFJlZiEuaW5qZWN0b3IuZ2V0KFRyYW5zbG9jb1NlcnZpY2UpIH0sXHJcblx0XHQvLyBgybVJTkpFQ1RPUl9TQ09QRToncm9vdCdgIHlhbiBldGtpc2k6IGBBcHBsaWNhdGlvblJlZmAgZGUgYHByb3ZpZGVkSW46J3Jvb3QnYCBvbGR1xJ91IGnDp2luXHJcblx0XHQvLyBjaGlsZCBpbmplY3RvcidkYSBjaGlsZC1MT0tBTCAoc2FodGUpIGJpciBpbnN0YW5jZSDDvHJldGlsaXJkaSDigJQgYnUgaW5zdGFuY2UgTmdab25lJ3VuXHJcblx0XHQvLyB0aWNrIGTDtm5nw7xzw7xuZSBiYcSfbMSxIERFxJ7EsExExLBSLiBTb251w6c6IGJ1IGFwcFJlZidlIGBhdHRhY2hWaWV3YCBlZGlsZW4gdmlldydsYXIgaGnDpyBjaGFuZ2VcclxuXHRcdC8vIGRldGVjdGlvbiBhbG1hei4gQXBwQ29tcG9uZW50J2kgYml6IGHDp8Sxa8OnYSBgc2hhcmVkQXBwUmVmLmF0dGFjaFZpZXdgIGlsZSBiYcSfbGFkxLHEn8SxbcSxeiBpw6dpblxyXG5cdFx0Ly8gw6dhbMSxxZ/EsXI7IGFtYSBgaW5qZWN0KEFwcGxpY2F0aW9uUmVmKWAgeWFwYW4gw7zDp8O8bmPDvCB0YXJhZiBrb2QgKFByaW1lTkcgYERpYWxvZ1NlcnZpY2VgIOKGklxyXG5cdFx0Ly8gYHRoaXMuYXBwUmVmLmF0dGFjaFZpZXdgKSBjaGlsZC1sb2NhbCBzYWh0ZSBhcHBSZWYnaSBhbMSxcCBkaWFsb2cndSBvbmEgYmHEn2zEsXlvcmR1IOKGkiBkaWFsb2dcclxuXHRcdC8vIHlhcmF0xLFsxLF5b3IgYW1hIGAqbmdJZj1cInZpc2libGVcImAgaGnDpyByZW5kZXIgZWRpbG1peW9yZHUgKGJvxZ8gYcOnxLFsxLF5b3JkdSkuIEdlcsOnZWsgKHRlayxcclxuXHRcdC8vIHRpY2sgYWxhbikgYHNoYXJlZEFwcFJlZmAnZSBzYWJpdGxpeW9ydXouXHJcblx0XHR7IHByb3ZpZGU6IEFwcGxpY2F0aW9uUmVmLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhIH0sXHJcblx0XHQvLyBUYXJhbWEgKGxvZzE1KSBpbGUgc2FwdGFuYW4sIGNoaWxkLWxvY2FsIG9sdW5jYSBib3p1bGFuIGVrIGBwcm92aWRlZEluOidyb290J2Agc2VydmlzbGVyaTpcclxuXHRcdC8vIOKAoiBQdWJTdWJTZXJ2aWNlIOKAlCBNRkUnbmluIGBicmVhZGNydW1iVXBkYXRlZGAgZXZlbnQnaSBob3N0IGBoaXN0b3J5LnNlcnZpY2VgJ2UgdWxhxZ9tYWzEsTtcclxuXHRcdC8vICAgY2hpbGQtbG9jYWwgb2x1bmNhIE1GReKGlGhvc3QgZXZlbnQga8O2cHLDvHPDvCBrb3B1eW9yZHUuXHJcblx0XHQvLyDigKIgUHJpbWVOR0NvbmZpZyDigJQgZGluYW1payBkaWFsb2cnbGFyIHNoYXJlZCByb290IGNvbnRleHQnaW5kZSB5YXJhdMSxbGTEscSfxLEgacOnaW4gUHJpbWVOR1xyXG5cdFx0Ly8gICDDp2V2aXJpbGVyaSAoY2FsZW5kYXIvcGFnaW5hdG9yIHZiLikgdmUgYHNldFRyYW5zbGF0aW9uYCBzaGFyZWQgaW5zdGFuY2UndGFuIG9rdW5tYWzEsS5cclxuXHRcdC8vIChCcmVhZGNydW1iU2VydmljZSBiaWxpbsOnbGkgb2xhcmFrIGNoaWxkLWxvY2FsIGLEsXJha8SxbGTEsTogaGVyIHRhYiBrZW5kaSBicmVhZGNydW1iJ8SxLilcclxuXHRcdHsgcHJvdmlkZTogUHViU3ViU2VydmljZSwgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoUHViU3ViU2VydmljZSkgfSxcclxuXHRcdHsgcHJvdmlkZTogUHJpbWVOR0NvbmZpZywgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoUHJpbWVOR0NvbmZpZykgfSxcclxuXHRcdC8vIFRvYXN0L2NvbmZpcm0gR0xPQkFMOiB0ZWsgc2hhcmVkIE1lc3NhZ2VTZXJ2aWNlL0NvbmZpcm1hdGlvblNlcnZpY2UuIEFrc2kgaGFsZGUgaGVyIHRhYlxyXG5cdFx0Ly8ga2VuZGkgaW5zdGFuY2UnxLFuYSBzYWhpcCBvbHVyIOKGkiBob3N0J3RhbiB0ZXRpa2xlbmVuIHRvYXN0IE1GRSB0YWInxLFuZGEgKHlhIGRhIHRlcnNpKVxyXG5cdFx0Ly8gZ8O2csO8bm1lei4gU2hhcmVkIGluc3RhbmNlIGlsZSB0w7xtIGA8cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCI+YCBjb250YWluZXInbGFyxLEgYXluxLEga3V5cnXEn3UgZGlubGVyLlxyXG5cdFx0eyBwcm92aWRlOiBNZXNzYWdlU2VydmljZSwgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoTWVzc2FnZVNlcnZpY2UpIH0sXHJcblx0XHR7IHByb3ZpZGU6IENvbmZpcm1hdGlvblNlcnZpY2UsIHVzZUZhY3Rvcnk6ICgpID0+IHNoYXJlZEFwcFJlZiEuaW5qZWN0b3IuZ2V0KENvbmZpcm1hdGlvblNlcnZpY2UpIH1cclxuXHRdO1xyXG5cclxuXHRjb25zdCBhcHBDb21wb25lbnRQcm9taXNlID0gYXBwQ29tcG9uZW50TG9hZGVyKCk7XHJcblxyXG5cdGNsYXNzIE1GRUFwcEVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XHJcblx0XHRwcml2YXRlIGNoaWxkSW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gbnVsbDtcclxuXHRcdHByaXZhdGUgY29tcFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcblx0XHRwcml2YXRlIGlzQm9vdHN0cmFwcGluZyA9IGZhbHNlO1xyXG5cdFx0cHJpdmF0ZSBkZXN0cm95VGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cdFx0YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRcdC8vIFN0cmF0ZWd5IGhpZGRlbiBjb250YWluZXIg4oaUIHZpZXcgYXJhc8SxIHRhxZ/EsW1hbGFyZGEgcmUtYm9vdHN0cmFwJ8SxIMO2bmxlIOKAlFxyXG5cdFx0XHQvLyB2aWV3IHphdGVuIHlhcmF0xLFsZMSxeXNhIHNraXAuIGRlc3Ryb3lUaW1lciBwZW5kaW5nIGlzZSBpcHRhbCBldC5cclxuXHRcdFx0aWYgKHRoaXMuY29tcFJlZiB8fCB0aGlzLmlzQm9vdHN0cmFwcGluZykge1xyXG5cdFx0XHRcdGlmICh0aGlzLmRlc3Ryb3lUaW1lcikge1xyXG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVzdHJveVRpbWVyKTtcclxuXHRcdFx0XHRcdHRoaXMuZGVzdHJveVRpbWVyID0gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuaXNCb290c3RyYXBwaW5nID0gdHJ1ZTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHQvLyBQYXlsYcWfxLFsYW4gQXBwbGljYXRpb24g4oCUIGlsayDDp2HEn8SxcmFuIHlhcmF0xLFyLCBkacSfZXJsZXJpIGF5bsSxIHByb21pc2UnxLEgYmVrbGVyLlxyXG5cdFx0XHRcdGlmICghc2hhcmVkQXBwUHJvbWlzZSkge1xyXG5cdFx0XHRcdFx0c2hhcmVkQXBwUHJvbWlzZSA9IGNyZWF0ZUFwcGxpY2F0aW9uKHNoYXJlZEJhc2VDb25maWcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCBbYXBwUmVmLCBBcHBDb21wb25lbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW3NoYXJlZEFwcFByb21pc2UsIGFwcENvbXBvbmVudFByb21pc2VdKTtcclxuXHRcdFx0XHRzaGFyZWRBcHBSZWYgPSBhcHBSZWY7XHJcblxyXG5cdFx0XHRcdC8vIEJ1IHRhYiBpw6dpbiBpem9sZSBSb3V0ZXIgc3RhY2snaSBiYXLEsW5kxLFyYW4gY2hpbGQgaW5qZWN0b3IuXHJcblx0XHRcdFx0Y29uc3QgdGFiSWQgPSB0aGlzLmdldEF0dHJpYnV0ZSgnYXJpbC10YWItaWQnKSA/PyAnJztcclxuXHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFxyXG5cdFx0XHRcdFx0Y2hpbGRQcm92aWRlcnMsXHJcblx0XHRcdFx0XHRhcHBSZWYuaW5qZWN0b3IsXHJcblx0XHRcdFx0XHRgbWZlOiR7X2FwcE5hbWV9OiR7dGFiSWQgfHwgJ3BlbmRpbmcnfWBcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHQvLyBbSGlicml0IGl6b2xhc3lvbiBndWFyZCDigJQga2FsxLFjxLFdIGDJtUlOSkVDVE9SX1NDT1BFOidyb290J2AgaWxlIGNoaWxkIGluamVjdG9yJ8SxblxyXG5cdFx0XHRcdC8vIEtFTkTEsCBSb3V0ZXIgKyBDaGlsZHJlbk91dGxldENvbnRleHRzJ2kgb2xtYXPEsSwgdGFiIGl6b2xhc3lvbnVudW4gdGVtZWxpZGlyXHJcblx0XHRcdFx0Ly8gKFwiMSBSb3V0ZXIgOiAxIG91dGxldFwiKS4gQnUgcHJpdmF0ZSBBUEkgQW5ndWxhciB1cGdyYWRlJ2luZGUgZGF2cmFuxLHFnyBkZcSfacWfdGlyaXJzZVxyXG5cdFx0XHRcdC8vIGJ1cmFkYSBlcmtlbiB5YWthbGFuxLFyOyBha3NpIGhhbGRlIFwiMSBSb3V0ZXIgOiBOIG91dGxldFwiIGJ1ZyfEsSBzZXNzaXpjZSBnZXJpIGTDtm5lci5cclxuXHRcdFx0XHRpZiAoaXNEZXZNb2RlKCkgJiYgdGhpcy5jaGlsZEluamVjdG9yLmdldChSb3V0ZXIpID09PSBhcHBSZWYuaW5qZWN0b3IuZ2V0KFJvdXRlcikpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXHJcblx0XHRcdFx0XHRcdGBbYm9vdDoke19hcHBOYW1lfV0gSMSwQlLEsFQgxLBaT0xBU1lPTiBCT1pVTERVOiBjaGlsZCBSb3V0ZXIgc2hhcmVkIHJvb3QgaWxlIGF5bsSxIGluc3RhbmNlISBgICtcclxuXHRcdFx0XHRcdFx0XHRgybVJTkpFQ1RPUl9TQ09QRSBkYXZyYW7EscWfxLEgZGXEn2nFn21pxZ8gb2xhYmlsaXIgKEFuZ3VsYXIgdXBncmFkZT8pIOKAlCB0YWIgaXpvbGFzeW9udSDDp2FsxLHFn21hei5gXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gQXBwQ29tcG9uZW50J2kgY2hpbGQgaW5qZWN0b3IgY29udGV4dCdpbmRlIHlhcmF0IOKGkiBpbmplY3QoUm91dGVyKS9Mb2NhdGlvblN0cmF0ZWd5XHJcblx0XHRcdFx0Ly8gY2hpbGQtbG9jYWw7IGluamVjdChNZmVCcmlkZ2UpL0h0dHBDbGllbnQvS2V5Y2xvYWsvVHJhbnNsb2NvU2VydmljZSB2Yi4gcGFyZW50J3RhblxyXG5cdFx0XHRcdC8vIHBheWxhxZ/EsW1sxLEuIGBhdHRhY2hWaWV3YCBzaGFyZWQgYXBwJ2luIGNoYW5nZSBkZXRlY3Rpb24gZMO2bmfDvHPDvG5lIGJhxJ9sYXIuIChgYm9vdHN0cmFwYFxyXG5cdFx0XHRcdC8vIGRlxJ9pbDogQVBQX0JPT1RTVFJBUF9MSVNURU5FUiDDp2FsxLHFn21heiwgY2hpbGQgUm91dGVyJ8SxbiBpbml0aWFsIG5hdmlnYXRpb24nxLFuxLFcclxuXHRcdFx0XHQvLyBBcHBDb21wb25lbnQgaG9zdC1Sb3V0ZXIgc3luYydpIGBzYWZlTmF2aWdhdGVgIGlsZSB5YXDEsXlvci4pXHJcblx0XHRcdFx0dGhpcy5jb21wUmVmID0gY3JlYXRlQ29tcG9uZW50KEFwcENvbXBvbmVudCBhcyBuZXZlciwge1xyXG5cdFx0XHRcdFx0ZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5jaGlsZEluamVjdG9yLFxyXG5cdFx0XHRcdFx0aG9zdEVsZW1lbnQ6IHRoaXNcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRhcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBSZWYuaG9zdFZpZXcpO1xyXG5cdFx0XHRcdC8vIEJhxZ9hcsSxbMSxIGJvb3Q6IGd1YXJkIGFydMSxayBgY29tcFJlZmAgw7x6ZXJpbmRlbiDDp2FsxLHFn8SxciDihpIgYGlzQm9vdHN0cmFwcGluZ2AnaSBixLFyYWsuXHJcblx0XHRcdFx0Ly8gKGF3YWl0IHPEsXJhc8SxbmRhIGRpc2Nvbm5lY3Qgb2x1cCBoYXRhIG9sdcWfbWF6c2EgZmxhZyB0YWvEsWzEsSBrYWxtYXPEsW47IGFrc2kgaGFsZGVcclxuXHRcdFx0XHQvLyByZWNvbm5lY3QndGUgZ3VhcmQgZXJrZW4gcmV0dXJuIGVkaXAgdGFiJ8SxIGthbMSxY8SxIGJvxZ8gYsSxcmFrxLFyLilcclxuXHRcdFx0XHR0aGlzLmlzQm9vdHN0cmFwcGluZyA9IGZhbHNlO1xyXG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKGBbYm9vdDoke19hcHBOYW1lfV0gYXBwbGljYXRpb24gYm9vdHN0cmFwIGhhdGFzxLE6YCwgZXJyKTtcclxuXHRcdFx0XHR0aGlzLmlzQm9vdHN0cmFwcGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdC8vIHNoYXJlZEFwcCBoZW7DvHogc2V0IGVkaWxtZWRpeXNlIChjcmVhdGVBcHBsaWNhdGlvbiBiYcWfYXLEsXPEsXopIHByb21pc2UnxLEgc8SxZsSxcmxhIGtpXHJcblx0XHRcdFx0Ly8gc29ucmFraSB0YWIgcmV0cnkgZWRlYmlsc2luIOKAlCBha3NpIGhhbGRlIHJlamVjdGVkIHByb21pc2UgY2xvc3VyZSdkYSBrYWzEsWPEsSBrYWzEsXIgdmVcclxuXHRcdFx0XHQvLyByZW1vdGUgc2F5ZmEgeWVuaWxlbWVkZW4gYmlyIGRhaGEgYm9vdCBlZGlsZW1lei4gKGNyZWF0ZUNvbXBvbmVudCBoYXRhc8SxbmRhXHJcblx0XHRcdFx0Ly8gc2hhcmVkQXBwUmVmIHphdGVuIHNldCd0aXI7IG8gZHVydW1kYSBwcm9taXNlIGtvcnVudXIsIGFwcCB5ZW5pZGVuIHlhcmF0xLFsbWF6LilcclxuXHRcdFx0XHRpZiAoIXNoYXJlZEFwcFJlZikgc2hhcmVkQXBwUHJvbWlzZSA9IG51bGw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcclxuXHRcdFx0Ly8gU3RyYXRlZ3kgaGlkZGVuIGNvbnRhaW5lciDihpQgdmlldyBhcmFzxLEgdGHFn8SxbWFsYXJkYSBgcmVtb3ZlQ2hpbGRgICsgYGFwcGVuZENoaWxkYFxyXG5cdFx0XHQvLyBhcmTEscWfxLFrIG9sZHXEn3UgacOnaW4gZGlzY29ubmVjdGVkQ2FsbGJhY2sgcGFyZW50IGRlxJ9pxZ9pbWl5bGUgdGV0aWtsZW5pciDigJQgZWxlbWVudFxyXG5cdFx0XHQvLyBnZXLDp2VrdGVuIGRlc3Ryb3kgZWRpbG1peW9yLiBgcHJlc2VydmVXZWJDb21wb25lbnRFbGVtZW50YCDDtm5jZXNpbmRlIFN0cmF0ZWd5XHJcblx0XHRcdC8vIGBfX2FyaWxQcmVzZXJ2ZUR1cmluZ0RldGFjaGAgZmxhZydpIHNldCBlZGl5b3I7IG8gZmxhZyB2YXJzYSB2aWV3IGtvcnVudXIuXHJcblx0XHRcdGNvbnN0IHByZXNlcnZlRmxhZyA9ICh0aGlzIGFzIEhUTUxFbGVtZW50ICYgeyBfX2FyaWxQcmVzZXJ2ZUR1cmluZ0RldGFjaD86IGJvb2xlYW4gfSkuX19hcmlsUHJlc2VydmVEdXJpbmdEZXRhY2g7XHJcblx0XHRcdGlmIChwcmVzZXJ2ZUZsYWcpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gRmxhZyB5b2sg4oaSIGdlcsOnZWsgZGVzdHJveS4gQXN5bmMgcmUtY29ubmVjdCBpaHRpbWFsaW5lIGthcsWfxLEgbWljcm90YXNrIHPEsW7EsXJsxLFcclxuXHRcdFx0Ly8gZGVmYW5zaWYgZ2VjaWttZTsgYmlyIHNvbnJha2kgdGljayd0ZSBow6Jsw6IgZGlzY29ubmVjdGVkIG3EsSBkaXllIHNvbiBrb250cm9sLlxyXG5cdFx0XHRpZiAodGhpcy5kZXN0cm95VGltZXIpIGNsZWFyVGltZW91dCh0aGlzLmRlc3Ryb3lUaW1lcik7XHJcblx0XHRcdHRoaXMuZGVzdHJveVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLmlzQ29ubmVjdGVkICYmIHRoaXMuY29tcFJlZikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYFtib290OiR7X2FwcE5hbWV9XSBnZXLDp2VrIGRlc3Ryb3kg4oaSIHZpZXcgKyBjaGlsZCBpbmplY3RvciBkZXN0cm95YCk7XHJcblx0XHRcdFx0XHQvLyBTaGFyZWQgYXBwJ2UgQVNMQSBkb2t1bm1hOyBzYWRlY2UgYnUgdGFiJ8SxbiB2aWV3J8SxbsSxIHZlIGNoaWxkIGluamVjdG9yJ8SxbsSxIHnEsWsuXHJcblx0XHRcdFx0XHRpZiAoc2hhcmVkQXBwUmVmKSBzaGFyZWRBcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNvbXBSZWYuaG9zdFZpZXcpO1xyXG5cdFx0XHRcdFx0dGhpcy5jb21wUmVmLmRlc3Ryb3koKTtcclxuXHRcdFx0XHRcdHRoaXMuY2hpbGRJbmplY3Rvcj8uZGVzdHJveSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5jb21wUmVmID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMuY2hpbGRJbmplY3RvciA9IG51bGw7XHJcblx0XHRcdFx0XHR0aGlzLmlzQm9vdHN0cmFwcGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmRlc3Ryb3lUaW1lciA9IG51bGw7XHJcblx0XHRcdH0sIDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dHJ5IHtcclxuXHRcdGN1c3RvbUVsZW1lbnRzLmRlZmluZShgYXBwLSR7YXBwTmFtZX1gLCBNRkVBcHBFbGVtZW50KTtcclxuXHR9IGNhdGNoIChlKSB7XHJcblx0XHRpZiAoZSBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlLm5hbWUgPT09ICdOb3RTdXBwb3J0ZWRFcnJvcicpIHtcclxuXHRcdFx0Y29uc29sZS53YXJuKGBbYm9vdDoke2FwcE5hbWV9XSBjdXN0b20gZWxlbWVudCB6YXRlbiB0YW7EsW1sxLEsIGRlZmluZSBhdGxhbmTEsWApO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aHJvdyBlO1xyXG5cdH1cclxufTtcclxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L21mZS9zcmMvYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFFZixjQUFjLEVBRWQsbUJBQW1CLEVBR25CLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsTUFBTSxFQUVOLGFBQWEsRUFDYixhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQVEsd0JBQXdCLEVBQWtCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxX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QUFDO1lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxPQUFPLGdEQUFnRCxDQUFDLENBQUM7WUFDL0UsT0FBTztRQUNSLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQztJQUNULENBQUM7QUFDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiwgTG9jYXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcblx0QVBQX0lOSVRJQUxJWkVSLFxyXG5cdEFwcGxpY2F0aW9uQ29uZmlnLFxyXG5cdEFwcGxpY2F0aW9uUmVmLFxyXG5cdENvbXBvbmVudFJlZixcclxuXHRFbnZpcm9ubWVudEluamVjdG9yLFxyXG5cdEVudmlyb25tZW50UHJvdmlkZXJzLFxyXG5cdFByb3ZpZGVyLFxyXG5cdGNyZWF0ZUNvbXBvbmVudCxcclxuXHRjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLFxyXG5cdGltcG9ydFByb3ZpZGVyc0Zyb20sXHJcblx0aW5qZWN0LFxyXG5cdGlzRGV2TW9kZSxcclxuXHTJtUlOSkVDVE9SX1NDT1BFXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7XHJcblx0Um91dGVSZXVzZVN0cmF0ZWd5LFxyXG5cdFJvdXRlcixcclxuXHRSb3V0ZXMsXHJcblx0VXJsU2VyaWFsaXplcixcclxuXHRwcm92aWRlUm91dGVyLFxyXG5cdHdpdGhDb21wb25lbnRJbnB1dEJpbmRpbmcsXHJcblx0d2l0aFJvdXRlckNvbmZpZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlLCBOR1hfTU9OQUNPX0VESVRPUl9DT05GSUcgfSBmcm9tICduZ3gtbW9uYWNvLWVkaXRvci12Mic7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVCYXNlQXBwQ29uZmlnIH0gZnJvbSAnYXJpbC9ib290L2Jhc2UnO1xyXG5pbXBvcnQgeyBzZXRBcGlDb25maWdPbk1GRU1vZGUgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEFwcHMsIEN1c3RvbVJvdXRlUmV1c2VTdHJhdGVneSwgUGx1Z2luTWVudUl0ZW0sIFRhYkF3YXJlVXJsU2VyaWFsaXplciB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcbmltcG9ydCB7IGdldE5nWm9uZSwgbG9hZFBsdWdpbnMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL3BsdWdpbnMnO1xyXG5pbXBvcnQgeyBpMThuRm9sZGVyTmFtZSB9IGZyb20gJ2FyaWwvaTE4bic7XHJcbmltcG9ydCB7IHByb3ZpZGVIb3N0IH0gZnJvbSAnYXJpbC9wcm92aWRlcic7XHJcbmltcG9ydCB7IFB1YlN1YlNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvcHViLXN1Yic7XHJcblxyXG5pbXBvcnQgeyBhcHBDb21wb25lbnRMb2FkZXIgfSBmcm9tICcuL2FwcENvbXBvbmVudExvYWRlcic7XHJcbmltcG9ydCB7IElzb2xhdGVkTG9jYXRpb25TdHJhdGVneSB9IGZyb20gJy4vaXNvbGF0ZWQtbG9jYXRpb24tc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBtb25hY29Db25maWcgfSBmcm9tICcuL21vbmFjby5jb25maWcnO1xyXG5cclxuZXhwb3J0IHZhciBhcHBOYW1lOiBBcHBzO1xyXG5leHBvcnQgdmFyIG1lbnVJdGVtczogUGx1Z2luTWVudUl0ZW1bXSA9IFtdO1xyXG5cclxuLyoqXHJcbiAqIGBib290YCDDp2HEn3LEsWxhcsSxbsSxbiBpZGVtcG90ZW50IGthbG1hc8SxbsSxIHNhxJ9sYXlhbiBzeW5jIGd1YXJkLiBBeW7EsSByZW1vdGUgacOnaW5cclxuICogYmlyZGVuIGZhemxhIHBhcmFsZWwgYGJvb3QoJ3dkbScsIC4uLilgIMOnYcSfcsSxc8SxIGdlbGRpxJ9pbmRlLCBpbGsgYGN1c3RvbUVsZW1lbnRzLmRlZmluZWBcclxuICogdGFtYW1sYW5tYWRhbiBpa2luY2kgw6dhxJ9yxLEgYGN1c3RvbUVsZW1lbnRzLmdldGAgZ3VhcmQnxLFuxLEgZ2XDp2l5b3JkdSDihpIgaGVyIGlraXNpIGRlXHJcbiAqIGRlZmluZSBldG1leWUgw6dhbMSxxZ/EsXAgYE5vdFN1cHBvcnRlZEVycm9yOiB0aGUgbmFtZSBcImFwcC13ZG1cIiBoYXMgYWxyZWFkeSBiZWVuIHVzZWRgXHJcbiAqIGhhdGFzxLEgZsSxcmxhdMSxbMSxeW9yZHUuIFNldCBpbGUgc3luYyBtYXJrIGVkZXJlayB0ZWsgYmlyIGRlZmluZSBjeWNsZSfEsSBnYXJhbnRpIGVkaXlvcnV6LlxyXG4gKi9cclxuY29uc3QgYm9vdGVkQXBwcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGJvb3QgPSAoX2FwcE5hbWU6IEFwcHMsIF9yb3V0ZXM6IFJvdXRlcywgX21lbnVJdGVtczogUGx1Z2luTWVudUl0ZW1bXSkgPT4ge1xyXG5cdGlmIChib290ZWRBcHBzLmhhcyhfYXBwTmFtZSkgfHwgY3VzdG9tRWxlbWVudHMuZ2V0KGBhcHAtJHtfYXBwTmFtZX1gKSkgcmV0dXJuO1xyXG5cdGJvb3RlZEFwcHMuYWRkKF9hcHBOYW1lKTtcclxuXHJcblx0YXBwTmFtZSA9IF9hcHBOYW1lO1xyXG5cdG1lbnVJdGVtcyA9IF9tZW51SXRlbXM7XHJcblxyXG5cdC8qKlxyXG5cdCAqICoqUGF5bGHFn8SxbGFuIGJhc2UgY29uZmlnKiog4oCUIHJlbW90ZSBiYcWfxLFuYSBURUsgYGNyZWF0ZUFwcGxpY2F0aW9uYC4gQcSfxLFyIHNlcnZpc2xlclxyXG5cdCAqIChIdHRwQ2xpZW50ICsgaW50ZXJjZXB0b3IgY2hhaW4sIEtleWNsb2FrLCBpMThuL1RyYW5zbG9jbywgTW9uYWNvLCBhbmltYXRpb25zKSBidXJhZGFcclxuXHQgKiB5YcWfYXI7IGBwcm92aWRlZEluYCB0YcWfxLFtYXlhbiBleHBsaWNpdCBwcm92aWRlciBvbGR1a2xhcsSxIGnDp2luIHTDvG0gdGFiJ2xhcsSxbiBjaGlsZFxyXG5cdCAqIGluamVjdG9yJ2xhcsSxbmRhbiBwYXJlbnQgb2xhcmFrIHBheWxhxZ/EsWzEsXIg4oaSIFJBTSBsaW5lZXIgYsO8ecO8bWV6LiBSb3V0ZXIvTG9jYXRpb24vXHJcblx0ICogUmV1c2VTdHJhdGVneS9VcmxTZXJpYWxpemVyIGJ1cmFkYSBZT0s7IG9ubGFyIHRhYiBiYcWfxLFuYSBpem9sZSBjaGlsZCBpbmplY3RvcidkYSB2ZXJpbGlyLlxyXG5cdCAqL1xyXG5cdGNvbnN0IHNoYXJlZEJhc2VDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xyXG5cdFx0cHJvdmlkZXJzOiBbXHJcblx0XHRcdGNyZWF0ZUJhc2VBcHBDb25maWcoeyBpMThuRm9sZGVyOiBfYXBwTmFtZSB9KSxcclxuXHRcdFx0cHJvdmlkZUhvc3QoX2FwcE5hbWUpLFxyXG5cdFx0XHRnZXROZ1pvbmUoKSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuXHRcdFx0XHR1c2VGYWN0b3J5OiAoaHR0cENsaWVudDogSHR0cENsaWVudCwga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZSwgZm9sZGVyTmFtZTogdHlwZW9mIGkxOG5Gb2xkZXJOYW1lKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBydW5BcGlJbml0ID0gc2V0QXBpQ29uZmlnT25NRkVNb2RlKGh0dHBDbGllbnQsIGtleWNsb2FrLCBmb2xkZXJOYW1lIGFzIHVua25vd24gYXMgQXBwcyk7XHJcblx0XHRcdFx0XHRjb25zdCBydW5Mb2FkUGx1Z2lucyA9IGxvYWRQbHVnaW5zKCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRhd2FpdCBydW5BcGlJbml0KCk7XHJcblx0XHRcdFx0XHRcdHJ1bkxvYWRQbHVnaW5zKCk7XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHRcdFx0ZGVwczogW0h0dHBDbGllbnQsIEtleWNsb2FrU2VydmljZSwgaTE4bkZvbGRlck5hbWVdXHJcblx0XHRcdH0sXHJcblx0XHRcdGltcG9ydFByb3ZpZGVyc0Zyb20oTW9uYWNvRWRpdG9yTW9kdWxlLmZvclJvb3QoKSksXHJcblx0XHRcdHsgcHJvdmlkZTogTkdYX01PTkFDT19FRElUT1JfQ09ORklHLCB1c2VWYWx1ZTogbW9uYWNvQ29uZmlnIH1cclxuXHRcdF1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdGUgYmHFn8SxbmEgVEVLIHBheWxhxZ/EsWxhbiBgQXBwbGljYXRpb25SZWZgIOKAlCBjbG9zdXJlLXNjb3BlLiDEsGxrIGA8YXBwLSR7YXBwTmFtZX0+YFxyXG5cdCAqIGVsZW1lbnQnaSBgY3JlYXRlQXBwbGljYXRpb24oc2hhcmVkQmFzZUNvbmZpZylgIMOnYcSfxLFyxLFyLCBzb25yYWtpIHTDvG0gZWxlbWVudCdsZXIgYXluxLFcclxuXHQgKiBwcm9taXNlJ8SxIGJla2xlciAoZHVwbGljYXRlIEFwcGxpY2F0aW9uIHlhcmF0xLFtxLEgaW1rw6Juc8SxeikuIEhlciBlbGVtZW50IGtlbmRpIGNoaWxkXHJcblx0ICogaW5qZWN0b3IgKyBgY3JlYXRlQ29tcG9uZW50YCBpbGUga2VuZGkgYEFwcENvbXBvbmVudGAgdmlldyfEsW7EsSB5YXJhdMSxcCBzaGFyZWQgYXBwJ2VcclxuXHQgKiBgYXR0YWNoVmlld2AgaWxlIGJhxJ9sYXIuIFNoYXJlZCBhcHAgdXp1biDDtm3DvHJsw7xkw7xyICh0YWInbGFyIGthcGFuc2EgZGEgZGVzdHJveSBlZGlsbWV6KS5cclxuXHQgKlxyXG5cdCAqIGBjaGlsZFByb3ZpZGVyc2AndGFraSBgVHJhbnNsb2NvU2VydmljZWAgZmFjdG9yeSdzaSBidSByZWZlcmFuc8SxIGt1bGxhbmTEscSfxLEgacOnaW5cclxuXHQgKiBgY2hpbGRQcm92aWRlcnNgJ3RhbiDDlk5DRSB0YW7EsW1sYW7EsXIgKGZvcndhcmQgVERaJ3lpIMO2bmxlcikuXHJcblx0ICovXHJcblx0bGV0IHNoYXJlZEFwcFJlZjogQXBwbGljYXRpb25SZWYgfCBudWxsID0gbnVsbDtcclxuXHRsZXQgc2hhcmVkQXBwUHJvbWlzZTogUHJvbWlzZTxBcHBsaWNhdGlvblJlZj4gfCBudWxsID0gbnVsbDtcclxuXHJcblx0LyoqXHJcblx0ICogKipUYWIgYmHFn8SxbmEgaXpvbGUgUm91dGVyIHN0YWNrKiog4oCUIGhlciBgPGFwcC0ke2FwcE5hbWV9PmAga2VuZGkgY2hpbGRcclxuXHQgKiBgRW52aXJvbm1lbnRJbmplY3RvcmAnxLFuZGEgYnVubGFyxLEgYWzEsXIuIGDJtUlOSkVDVE9SX1NDT1BFOiAncm9vdCdgIGNoaWxkJ8SxICdyb290J1xyXG5cdCAqIHNjb3BlIHlhcGFyIChBbmd1bGFyIGBSM0luamVjdG9yYCBjdG9yOiBgc2NvcGVzLmFkZCgncm9vdCcpYCk7IGLDtnlsZWNlIGBwcm92aWRlUm91dGVyYCfEsW5cclxuXHQgKiBpbmplY3QgZXR0acSfaSBgcHJvdmlkZWRJbjoncm9vdCdgIFJvdXRlciBzZXJ2aXNsZXJpIOKAlCBgUm91dGVyYCwgYENoaWxkcmVuT3V0bGV0Q29udGV4dHNgLFxyXG5cdCAqIGBMb2NhdGlvbmAsIGBOYXZpZ2F0aW9uVHJhbnNpdGlvbnNgIHZiLiDigJQgY2hpbGQtTE9DQUwgw7xyZXRpbGlyLiBTb251w6c6IGhlciB0YWIga2VuZGlcclxuXHQgKiBSb3V0ZXIgKyBrZW5kaSBgUm91dGVyT3V0bGV0YCBjb250ZXh0J2luZSBzYWhpcCBvbHVyIOKGkiAqKjEgUm91dGVyIDogMSBvdXRsZXQqKi5cclxuXHQgKlxyXG5cdCAqIE5lZGVuIGdlcmVrbGk6IHBheWxhxZ/EsWxhbiB0ZWsgQXBwbGljYXRpb24nZGEgTiBgPHJvdXRlci1vdXRsZXQ+YCBheW7EsSB0ZWtcclxuXHQgKiBgQ2hpbGRyZW5PdXRsZXRDb250ZXh0c2AnZSBcInByaW1hcnlcIiBkaXllIGtheWRvbHVwIGJpcmJpcmluaSBleml5b3JkdSAoYGNvbnRleHRzLnNldGBcclxuXHQgKiBvdmVyd3JpdGUpIOKGkiB0YWIgZ2XDp2nFn2kgc29ucmFzxLEgYXluxLEgdGFiIGnDp2kgbmF2aWdhc3lvbiAobGlzdOKGkmRldGFpbCkgeWFubMSxxZ8gb3V0bGV0J2VcclxuXHQgKiByZW5kZXIgb2x1eW9yZHUuIENoaWxkLWluamVjdG9yIGl6b2xhc3lvbnUgYnVudSBrw7ZrdGVuIMOnw7Z6ZXIuXHJcblx0ICpcclxuXHQgKiAqKlRyYW5zbG9jb1NlcnZpY2UgaXN0aXNuYXPEsSoqOiBgJ3Jvb3QnYCBzY29wZSBvbnUgZGEgY2hpbGQtbG9jYWwgeWFwYXJkxLE7IGFtYSBnbG9iYWxcclxuXHQgKiAoc2NvcGUnc3V6KSDDp2V2aXJpbGVyIHNoYXJlZCBhcHAnaW4gaW5pdCBha8SxxZ/EsW5kYSB5w7xrbGVuZGnEn2luZGVuIOKAlCBgY3JlYXRlQ29tcG9uZW50YFxyXG5cdCAqIGBBUFBfSU5JVElBTElaRVJgIMOnYWzEscWfdMSxcm1heiDigJQgY2hpbGQtbG9jYWwgc2VydmljZSdpbiBnbG9iYWwgY2FjaGUnaSBib8WfIGthbMSxcCBoYW0ga2V5XHJcblx0ICogZ8O2c3Rlcml5b3JkdS4gVGFiIGJhxZ/EsW5hIGF5csSxIGRpbCBzZW5hcnlvc3UgeW9rOyBzZXJ2aWNlJ2kgc2hhcmVkIGFwcCd0ZW4gcGF5bGHFn3TEsXLEsXlvcnV6XHJcblx0ICogKGdsb2JhbCDDp2V2aXJpIHRlayB5ZXJkZSB5w7xrbGVuaXIsIHRlayB0cmFuc2xhdGlvbiBjYWNoZSDihpIgZWsgUkFNIGthemFuY8SxKS4gU2NvcGUgw6dldmlyaWxlcmlcclxuXHQgKiAoYHByb3ZpZGVpMThuU2NvcGVgKSBjb21wb25lbnQtbGV2ZWwgc2HEn2xhbmTEscSfxLEgacOnaW4gcGF5bGHFn8SxbGFuIHNlcnZpY2UnbGUgZGUgw6dhbMSxxZ/EsXIuXHJcblx0ICpcclxuXHQgKiBOT1Q6IGDJtUlOSkVDVE9SX1NDT1BFYCBBbmd1bGFyIHByaXZhdGUgQVBJJ3NpZGlyOyBtaW5vciBzw7xyw7xtIHnDvGtzZWx0bWVsZXJpbmRlIGRhdnJhbsSxxZ/EsVxyXG5cdCAqIGRvxJ9ydWxhbm1hbMSxIChhxZ9hxJ/EsWRha2kgUE9DIGl6b2xhc3lvbiBsb2cndSBidW51biBpw6dpbiBixLFyYWvEsWxkxLEpLlxyXG5cdCAqL1xyXG5cdGNvbnN0IGNoaWxkUHJvdmlkZXJzOiBBcnJheTxQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzPiA9IFtcclxuXHRcdHsgcHJvdmlkZTogybVJTkpFQ1RPUl9TQ09QRSwgdXNlVmFsdWU6ICdyb290JyB9LFxyXG5cdFx0cHJvdmlkZVJvdXRlcihcclxuXHRcdFx0X3JvdXRlcyxcclxuXHRcdFx0d2l0aENvbXBvbmVudElucHV0QmluZGluZygpLFxyXG5cdFx0XHR3aXRoUm91dGVyQ29uZmlnKHsgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcgfSlcclxuXHRcdCksXHJcblx0XHR7IHByb3ZpZGU6IExvY2F0aW9uU3RyYXRlZ3ksIHVzZUNsYXNzOiBJc29sYXRlZExvY2F0aW9uU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogTG9jYXRpb24sIHVzZUNsYXNzOiBMb2NhdGlvbiB9LFxyXG5cdFx0eyBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksIHVzZUV4aXN0aW5nOiBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogVXJsU2VyaWFsaXplciwgdXNlRXhpc3Rpbmc6IFRhYkF3YXJlVXJsU2VyaWFsaXplciB9LFxyXG5cdFx0eyBwcm92aWRlOiBUcmFuc2xvY29TZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChUcmFuc2xvY29TZXJ2aWNlKSB9LFxyXG5cdFx0Ly8gYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCB5YW4gZXRraXNpOiBgQXBwbGljYXRpb25SZWZgIGRlIGBwcm92aWRlZEluOidyb290J2Agb2xkdcSfdSBpw6dpblxyXG5cdFx0Ly8gY2hpbGQgaW5qZWN0b3InZGEgY2hpbGQtTE9LQUwgKHNhaHRlKSBiaXIgaW5zdGFuY2Ugw7xyZXRpbGlyZGkg4oCUIGJ1IGluc3RhbmNlIE5nWm9uZSd1blxyXG5cdFx0Ly8gdGljayBkw7ZuZ8O8c8O8bmUgYmHEn2zEsSBERcSexLBMRMSwUi4gU29udcOnOiBidSBhcHBSZWYnZSBgYXR0YWNoVmlld2AgZWRpbGVuIHZpZXcnbGFyIGhpw6cgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gYWxtYXouIEFwcENvbXBvbmVudCdpIGJpeiBhw6fEsWvDp2EgYHNoYXJlZEFwcFJlZi5hdHRhY2hWaWV3YCBpbGUgYmHEn2xhZMSxxJ/EsW3EsXogacOnaW5cclxuXHRcdC8vIMOnYWzEscWfxLFyOyBhbWEgYGluamVjdChBcHBsaWNhdGlvblJlZilgIHlhcGFuIMO8w6fDvG5jw7wgdGFyYWYga29kIChQcmltZU5HIGBEaWFsb2dTZXJ2aWNlYCDihpJcclxuXHRcdC8vIGB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3YCkgY2hpbGQtbG9jYWwgc2FodGUgYXBwUmVmJ2kgYWzEsXAgZGlhbG9nJ3Ugb25hIGJhxJ9sxLF5b3JkdSDihpIgZGlhbG9nXHJcblx0XHQvLyB5YXJhdMSxbMSxeW9yIGFtYSBgKm5nSWY9XCJ2aXNpYmxlXCJgIGhpw6cgcmVuZGVyIGVkaWxtaXlvcmR1IChib8WfIGHDp8SxbMSxeW9yZHUpLlxyXG5cdFx0Ly9cclxuXHRcdC8vIMOHw7Z6w7xtIOKAlCBgc2hhcmVkQXBwUmVmYCdpIHNhcmFuIFByb3h5OiBUw5xNIMO8eWVsZXIgKGF0dGFjaFZpZXcvZGV0YWNoVmlldy90aWNrL2NvbXBvbmVudHPigKYpXHJcblx0XHQvLyBnZXLDp2VrIGBzaGFyZWRBcHBSZWZgJ2UgZGVsZWdlIG9sdXIgKG1ldGhvZCdsYXIgYHRhcmdldGAnYSBiaW5kJ2xpIOKGkiBwcml2YXRlIGZpZWxkIGRhaGlsXHJcblx0XHQvLyBkb8SfcnUgYHRoaXNgKSwgVEVLIGZhcmsgYC5pbmplY3RvcmAg4oaSIGJ1IHRhYifEsW4gY2hpbGQgaW5qZWN0b3InxLEuIE5lZGVuIGtyaXRpazogUHJpbWVOR1xyXG5cdFx0Ly8gYERpYWxvZ1NlcnZpY2VgIGRpYWxvZyd1IGBjcmVhdGVDb21wb25lbnQoLi4uLCB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwUmVmLmluamVjdG9yIH0pYFxyXG5cdFx0Ly8gaWxlIHlhcmF0xLFyLiBEw7x6IGBzaGFyZWRBcHBSZWZgIGTDtm5lcnNlayBkaWFsb2cgacOnZXJpxJ9pIHNoYXJlZCBST09UJ3RhIMOnw7Z6w7xsw7xyLCBzYXlmYSBpc2VcclxuXHRcdC8vIGNoaWxkIGluamVjdG9yJ2RhIOKGkiBgcHJvdmlkZWRJbjoncm9vdCdgIGhlciBzZXJ2aXMgxLBLxLAgYXlyxLEgaW5zdGFuY2Ugb2x1ciAoc3BsaXQtYnJhaW4pIHZlXHJcblx0XHQvLyBCZWhhdmlvclN1YmplY3QgdGFiYW5sxLEgc2F5ZmHihpRkaWFsb2cgc3RhdGUgc2Vua3Jvbml6ZSBPTE1BWiAoc2XDp2lsaSBrYXnEsXQgZGlhbG9nJ2RhIG51bGwpLlxyXG5cdFx0Ly8gYC5pbmplY3RvcmAnxLEgY2hpbGQnYSB5w7ZubGVuZGlyaW5jZSBkaWFsb2cgacOnZXJpxJ9pIHNheWZheWxhIEFZTkkgaW5qZWN0b3InZGEgw6fDtnplciDihpIgb3RvbWF0aWtcclxuXHRcdC8vIHRlayBpbnN0YW5jZSwgVMOcTSAobWV2Y3V0K2dlbGVjZWspIHNlcnZpc2xlciBpw6dpbiDigJQgc2VydmlzIGxpc3Rlc2kgdHV0bWF5YSBnZXJlayB5b2suXHJcblx0XHQvLyBgYXR0YWNoVmlld2AgeWluZSBgc2hhcmVkQXBwUmVmYCdlIGdpdHRpxJ9pIGnDp2luIHRlayB0aWNrIGTDtm5nw7xzw7wvY2hhbmdlIGRldGVjdGlvbiBrb3J1bnVyLlxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBBcHBsaWNhdGlvblJlZixcclxuXHRcdFx0dXNlRmFjdG9yeTogKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHRhYkluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xyXG5cdFx0XHRcdHJldHVybiBuZXcgUHJveHkoc2hhcmVkQXBwUmVmISwge1xyXG5cdFx0XHRcdFx0Z2V0KHRhcmdldCwgcHJvcCkge1xyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ2luamVjdG9yJykgcmV0dXJuIHRhYkluamVjdG9yO1xyXG5cdFx0XHRcdFx0XHQvLyBgbmdPbkRlc3Ryb3lgJ3UgR8SwWkxFICh1bmRlZmluZWQgZMO2bmTDvHIpLiBBa3NpIGhhbGRlIGBpbmplY3QoQXBwbGljYXRpb25SZWYpYFxyXG5cdFx0XHRcdFx0XHQvLyB5YXBhbiB0YWIgY2hpbGQgaW5qZWN0b3InxLEgKFByaW1lTkcgRGlhbG9nU2VydmljZSB2ZXlhIGHFn2HEn8SxZGFraSBkZXYgZ3VhcmQpXHJcblx0XHRcdFx0XHRcdC8vIHByb3h5J3lpIGtlbmRpIGBfbmdPbkRlc3Ryb3lIb29rc2AndW5hIGtheWRlZGVyIChSM0luamVjdG9yLmh5ZHJhdGUg4oaSXHJcblx0XHRcdFx0XHRcdC8vIGhhc09uRGVzdHJveT10cnVlKSB2ZSB0YWIga2FwYW7EscWfxLFuZGEgYGNoaWxkSW5qZWN0b3IuZGVzdHJveSgpYCDihpJcclxuXHRcdFx0XHRcdFx0Ly8gYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveSgpYCDihpIgYcOnxLFrIFTDnE0gdGFiJ2xhcsSxbiB2aWV3J2xhcsSxbsSxIGRlc3Ryb3kgZWRpcFxyXG5cdFx0XHRcdFx0XHQvLyBzaGFyZWQgYXBwJ2kgw7ZsZMO8csO8ci4gU2hhcmVkIGFwcCdpbiBsaWZlY3ljbGUnxLEgYm9vdHN0cmFwJ2EgYWl0dGlyLCB0YWInYSBkZcSfaWxcclxuXHRcdFx0XHRcdFx0Ly8gKGdlcsOnZWsgYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveWAgZXRraWxlbm1lejsgeWFsbsSxemNhIHByb3h5IMO8emVyaW5kZW4gZ2l6bGVuaXIpLlxyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ25nT25EZXN0cm95JykgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHRhcmdldCk7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZS5iaW5kKHRhcmdldCkgOiB2YWx1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIFRhcmFtYSAobG9nMTUpIGlsZSBzYXB0YW5hbiwgY2hpbGQtbG9jYWwgb2x1bmNhIGJvenVsYW4gZWsgYHByb3ZpZGVkSW46J3Jvb3QnYCBzZXJ2aXNsZXJpOlxyXG5cdFx0Ly8g4oCiIFB1YlN1YlNlcnZpY2Ug4oCUIE1GRSduaW4gYGJyZWFkY3J1bWJVcGRhdGVkYCBldmVudCdpIGhvc3QgYGhpc3Rvcnkuc2VydmljZWAnZSB1bGHFn21hbMSxO1xyXG5cdFx0Ly8gICBjaGlsZC1sb2NhbCBvbHVuY2EgTUZF4oaUaG9zdCBldmVudCBrw7ZwcsO8c8O8IGtvcHV5b3JkdS5cclxuXHRcdC8vIOKAoiBQcmltZU5HQ29uZmlnIOKAlCBkaW5hbWlrIGRpYWxvZydsYXIgc2hhcmVkIHJvb3QgY29udGV4dCdpbmRlIHlhcmF0xLFsZMSxxJ/EsSBpw6dpbiBQcmltZU5HXHJcblx0XHQvLyAgIMOnZXZpcmlsZXJpIChjYWxlbmRhci9wYWdpbmF0b3IgdmIuKSB2ZSBgc2V0VHJhbnNsYXRpb25gIHNoYXJlZCBpbnN0YW5jZSd0YW4gb2t1bm1hbMSxLlxyXG5cdFx0Ly8gKEJyZWFkY3J1bWJTZXJ2aWNlIGJpbGluw6dsaSBvbGFyYWsgY2hpbGQtbG9jYWwgYsSxcmFrxLFsZMSxOiBoZXIgdGFiIGtlbmRpIGJyZWFkY3J1bWInxLEuKVxyXG5cdFx0eyBwcm92aWRlOiBQdWJTdWJTZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQdWJTdWJTZXJ2aWNlKSB9LFxyXG5cdFx0eyBwcm92aWRlOiBQcmltZU5HQ29uZmlnLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQcmltZU5HQ29uZmlnKSB9LFxyXG5cdFx0Ly8gVG9hc3QvY29uZmlybSBHTE9CQUw6IHRlayBzaGFyZWQgTWVzc2FnZVNlcnZpY2UvQ29uZmlybWF0aW9uU2VydmljZS4gQWtzaSBoYWxkZSBoZXIgdGFiXHJcblx0XHQvLyBrZW5kaSBpbnN0YW5jZSfEsW5hIHNhaGlwIG9sdXIg4oaSIGhvc3QndGFuIHRldGlrbGVuZW4gdG9hc3QgTUZFIHRhYifEsW5kYSAoeWEgZGEgdGVyc2kpXHJcblx0XHQvLyBnw7Zyw7xubWV6LiBTaGFyZWQgaW5zdGFuY2UgaWxlIHTDvG0gYDxwLXRvYXN0IGtleT1cInRvYXN0LXJvb3RcIj5gIGNvbnRhaW5lcidsYXLEsSBheW7EsSBrdXlydcSfdSBkaW5sZXIuXHJcblx0XHR7IHByb3ZpZGU6IE1lc3NhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSkgfSxcclxuXHRcdHsgcHJvdmlkZTogQ29uZmlybWF0aW9uU2VydmljZSwgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoQ29uZmlybWF0aW9uU2VydmljZSkgfVxyXG5cdFx0Ly8gU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIGJpbGluw6dsaSBvbGFyYWsgQlVSQURBIFlPSzogdMO8bSBzdGF0ZSdpIChzaWduYWwgKyBsb2FkZWQvbG9hZGluZyArXHJcblx0XHQvLyBpbml0IGZsYWcnaSkgZ2xvYmFsVGhpcyBicmlkZ2UnZGUgeWHFn2FyOyBjaGlsZC1sb2NhbCBpbnN0YW5jZSdsYXIgZGEgYXluxLEgc3RhdGUnaSBhbGlhcydsYXIsXHJcblx0XHQvLyBidSB5w7x6ZGVuIGluc3RhbmNlIHNhecSxc8SxbsSxbiDDtm5lbWkgeW9rdHVyIOKAlCBmb3J3YXJkaW5nIHlhbG7EsXpjYSBpbnN0YW5jZS1sb2NhbCBzdGF0ZSdpIG9sYW5cclxuXHRcdC8vIHNlcnZpc2xlciAoTWVzc2FnZVNlcnZpY2UgdmIuKSBpw6dpbiBnZXJla2xpZGlyLlxyXG5cdF07XHJcblxyXG5cdGNvbnN0IGFwcENvbXBvbmVudFByb21pc2UgPSBhcHBDb21wb25lbnRMb2FkZXIoKTtcclxuXHJcblx0Y2xhc3MgTUZFQXBwRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcclxuXHRcdHByaXZhdGUgY2hpbGRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvciB8IG51bGwgPSBudWxsO1xyXG5cdFx0cHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuXHRcdHByaXZhdGUgaXNCb290c3RyYXBwaW5nID0gZmFsc2U7XHJcblx0XHRwcml2YXRlIGRlc3Ryb3lUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcclxuXHJcblx0XHRhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdFx0Ly8gU3RyYXRlZ3kgaGlkZGVuIGNvbnRhaW5lciDihpQgdmlldyBhcmFzxLEgdGHFn8SxbWFsYXJkYSByZS1ib290c3RyYXAnxLEgw7ZubGUg4oCUXHJcblx0XHRcdC8vIHZpZXcgemF0ZW4geWFyYXTEsWxkxLF5c2Egc2tpcC4gZGVzdHJveVRpbWVyIHBlbmRpbmcgaXNlIGlwdGFsIGV0LlxyXG5cdFx0XHRpZiAodGhpcy5jb21wUmVmIHx8IHRoaXMuaXNCb290c3RyYXBwaW5nKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZGVzdHJveVRpbWVyKSB7XHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZXIpO1xyXG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95VGltZXIgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSB0cnVlO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdC8vIFBheWxhxZ/EsWxhbiBBcHBsaWNhdGlvbiDigJQgaWxrIMOnYcSfxLFyYW4geWFyYXTEsXIsIGRpxJ9lcmxlcmkgYXluxLEgcHJvbWlzZSfEsSBiZWtsZXIuXHJcblx0XHRcdFx0aWYgKCFzaGFyZWRBcHBQcm9taXNlKSB7XHJcblx0XHRcdFx0XHRzaGFyZWRBcHBQcm9taXNlID0gY3JlYXRlQXBwbGljYXRpb24oc2hhcmVkQmFzZUNvbmZpZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnN0IFthcHBSZWYsIEFwcENvbXBvbmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbc2hhcmVkQXBwUHJvbWlzZSwgYXBwQ29tcG9uZW50UHJvbWlzZV0pO1xyXG5cdFx0XHRcdHNoYXJlZEFwcFJlZiA9IGFwcFJlZjtcclxuXHJcblx0XHRcdFx0Ly8gQnUgdGFiIGnDp2luIGl6b2xlIFJvdXRlciBzdGFjaydpIGJhcsSxbmTEsXJhbiBjaGlsZCBpbmplY3Rvci5cclxuXHRcdFx0XHRjb25zdCB0YWJJZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdhcmlsLXRhYi1pZCcpID8/ICcnO1xyXG5cdFx0XHRcdHRoaXMuY2hpbGRJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXHJcblx0XHRcdFx0XHRjaGlsZFByb3ZpZGVycyxcclxuXHRcdFx0XHRcdGFwcFJlZi5pbmplY3RvcixcclxuXHRcdFx0XHRcdGBtZmU6JHtfYXBwTmFtZX06JHt0YWJJZCB8fCAncGVuZGluZyd9YFxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdC8vIFtIaWJyaXQgaXpvbGFzeW9uIGd1YXJkIOKAlCBrYWzEsWPEsV0gYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCBpbGUgY2hpbGQgaW5qZWN0b3InxLFuXHJcblx0XHRcdFx0Ly8gS0VORMSwIFJvdXRlciArIENoaWxkcmVuT3V0bGV0Q29udGV4dHMnaSBvbG1hc8SxLCB0YWIgaXpvbGFzeW9udW51biB0ZW1lbGlkaXJcclxuXHRcdFx0XHQvLyAoXCIxIFJvdXRlciA6IDEgb3V0bGV0XCIpLiBCdSBwcml2YXRlIEFQSSBBbmd1bGFyIHVwZ3JhZGUnaW5kZSBkYXZyYW7EscWfIGRlxJ9pxZ90aXJpcnNlXHJcblx0XHRcdFx0Ly8gYnVyYWRhIGVya2VuIHlha2FsYW7EsXI7IGFrc2kgaGFsZGUgXCIxIFJvdXRlciA6IE4gb3V0bGV0XCIgYnVnJ8SxIHNlc3NpemNlIGdlcmkgZMO2bmVyLlxyXG5cdFx0XHRcdGlmIChpc0Rldk1vZGUoKSAmJiB0aGlzLmNoaWxkSW5qZWN0b3IuZ2V0KFJvdXRlcikgPT09IGFwcFJlZi5pbmplY3Rvci5nZXQoUm91dGVyKSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcclxuXHRcdFx0XHRcdFx0YFtib290OiR7X2FwcE5hbWV9XSBIxLBCUsSwVCDEsFpPTEFTWU9OIEJPWlVMRFU6IGNoaWxkIFJvdXRlciBzaGFyZWQgcm9vdCBpbGUgYXluxLEgaW5zdGFuY2UhIGAgK1xyXG5cdFx0XHRcdFx0XHRcdGDJtUlOSkVDVE9SX1NDT1BFIGRhdnJhbsSxxZ/EsSBkZcSfacWfbWnFnyBvbGFiaWxpciAoQW5ndWxhciB1cGdyYWRlPykg4oCUIHRhYiBpem9sYXN5b251IMOnYWzEscWfbWF6LmBcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBbRGlhbG9nIGluamVjdG9yIGvDtnByw7xzw7wgZ3VhcmQg4oCUIGthbMSxY8SxXSBBcHBsaWNhdGlvblJlZiBwcm94eSdzaW5pbiBgLmluamVjdG9yYCfEsSBidVxyXG5cdFx0XHRcdC8vIHRhYifEsW4gY2hpbGQgaW5qZWN0b3InxLFuxLEgZ8O2c3Rlcm1lbGk7IGFrc2kgaGFsZGUgUHJpbWVORyBEaWFsb2dTZXJ2aWNlIGRpYWxvZyBpw6dlcmnEn2luaVxyXG5cdFx0XHRcdC8vIHNoYXJlZCByb290J3RhIMOnw7Z6ZXIg4oaSIHNheWZh4oaUZGlhbG9nIGBwcm92aWRlZEluOidyb290J2Agc3BsaXQtYnJhaW4gZ2VyaSBkw7ZuZXIuIFByaW1lTkdcclxuXHRcdFx0XHQvLyB5YSBkYSBBbmd1bGFyIHVwZ3JhZGUnaSBgYXBwUmVmLmluamVjdG9yYCBrdWxsYW7EsW3EsW7EsSBkZcSfacWfdGlyaXJzZSBidXJhZGEgeWFrYWxhbsSxci5cclxuXHRcdFx0XHRpZiAoaXNEZXZNb2RlKCkgJiYgdGhpcy5jaGlsZEluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZikuaW5qZWN0b3IgIT09IHRoaXMuY2hpbGRJbmplY3Rvcikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcclxuXHRcdFx0XHRcdFx0YFtib290OiR7X2FwcE5hbWV9XSBESUFMT0cgSU5KRUNUT1IgS8OWUFLDnFPDnCBCT1pVTERVOiBBcHBsaWNhdGlvblJlZi5pbmplY3RvciB0YWIgY2hpbGQgYCArXHJcblx0XHRcdFx0XHRcdFx0YGluamVjdG9yJ8SxIGfDtnN0ZXJtaXlvciDigJQgZGlhbG9nIGnDp2VyacSfaSBzYXlmYWRhbiBmYXJrbMSxIGluamVjdG9yJ2RhIMOnw7Z6w7xsw7xyIChzcGxpdC1icmFpbikuYFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIEFwcENvbXBvbmVudCdpIGNoaWxkIGluamVjdG9yIGNvbnRleHQnaW5kZSB5YXJhdCDihpIgaW5qZWN0KFJvdXRlcikvTG9jYXRpb25TdHJhdGVneVxyXG5cdFx0XHRcdC8vIGNoaWxkLWxvY2FsOyBpbmplY3QoTWZlQnJpZGdlKS9IdHRwQ2xpZW50L0tleWNsb2FrL1RyYW5zbG9jb1NlcnZpY2UgdmIuIHBhcmVudCd0YW5cclxuXHRcdFx0XHQvLyBwYXlsYcWfxLFtbMSxLiBgYXR0YWNoVmlld2Agc2hhcmVkIGFwcCdpbiBjaGFuZ2UgZGV0ZWN0aW9uIGTDtm5nw7xzw7xuZSBiYcSfbGFyLiAoYGJvb3RzdHJhcGBcclxuXHRcdFx0XHQvLyBkZcSfaWw6IEFQUF9CT09UU1RSQVBfTElTVEVORVIgw6dhbMSxxZ9tYXosIGNoaWxkIFJvdXRlcifEsW4gaW5pdGlhbCBuYXZpZ2F0aW9uJ8SxbsSxXHJcblx0XHRcdFx0Ly8gQXBwQ29tcG9uZW50IGhvc3QtUm91dGVyIHN5bmMnaSBgc2FmZU5hdmlnYXRlYCBpbGUgeWFwxLF5b3IuKVxyXG5cdFx0XHRcdHRoaXMuY29tcFJlZiA9IGNyZWF0ZUNvbXBvbmVudChBcHBDb21wb25lbnQgYXMgbmV2ZXIsIHtcclxuXHRcdFx0XHRcdGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuY2hpbGRJbmplY3RvcixcclxuXHRcdFx0XHRcdGhvc3RFbGVtZW50OiB0aGlzXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0YXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wUmVmLmhvc3RWaWV3KTtcclxuXHRcdFx0XHQvLyBCYcWfYXLEsWzEsSBib290OiBndWFyZCBhcnTEsWsgYGNvbXBSZWZgIMO8emVyaW5kZW4gw6dhbMSxxZ/EsXIg4oaSIGBpc0Jvb3RzdHJhcHBpbmdgJ2kgYsSxcmFrLlxyXG5cdFx0XHRcdC8vIChhd2FpdCBzxLFyYXPEsW5kYSBkaXNjb25uZWN0IG9sdXAgaGF0YSBvbHXFn21henNhIGZsYWcgdGFrxLFsxLEga2FsbWFzxLFuOyBha3NpIGhhbGRlXHJcblx0XHRcdFx0Ly8gcmVjb25uZWN0J3RlIGd1YXJkIGVya2VuIHJldHVybiBlZGlwIHRhYifEsSBrYWzEsWPEsSBib8WfIGLEsXJha8Sxci4pXHJcblx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcihgW2Jvb3Q6JHtfYXBwTmFtZX1dIGFwcGxpY2F0aW9uIGJvb3RzdHJhcCBoYXRhc8SxOmAsIGVycik7XHJcblx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHQvLyBzaGFyZWRBcHAgaGVuw7x6IHNldCBlZGlsbWVkaXlzZSAoY3JlYXRlQXBwbGljYXRpb24gYmHFn2FyxLFzxLF6KSBwcm9taXNlJ8SxIHPEsWbEsXJsYSBraVxyXG5cdFx0XHRcdC8vIHNvbnJha2kgdGFiIHJldHJ5IGVkZWJpbHNpbiDigJQgYWtzaSBoYWxkZSByZWplY3RlZCBwcm9taXNlIGNsb3N1cmUnZGEga2FsxLFjxLEga2FsxLFyIHZlXHJcblx0XHRcdFx0Ly8gcmVtb3RlIHNheWZhIHllbmlsZW1lZGVuIGJpciBkYWhhIGJvb3QgZWRpbGVtZXouIChjcmVhdGVDb21wb25lbnQgaGF0YXPEsW5kYVxyXG5cdFx0XHRcdC8vIHNoYXJlZEFwcFJlZiB6YXRlbiBzZXQndGlyOyBvIGR1cnVtZGEgcHJvbWlzZSBrb3J1bnVyLCBhcHAgeWVuaWRlbiB5YXJhdMSxbG1hei4pXHJcblx0XHRcdFx0aWYgKCFzaGFyZWRBcHBSZWYpIHNoYXJlZEFwcFByb21pc2UgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0ZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XHJcblx0XHRcdC8vIFN0cmF0ZWd5IGhpZGRlbiBjb250YWluZXIg4oaUIHZpZXcgYXJhc8SxIHRhxZ/EsW1hbGFyZGEgYHJlbW92ZUNoaWxkYCArIGBhcHBlbmRDaGlsZGBcclxuXHRcdFx0Ly8gYXJkxLHFn8SxayBvbGR1xJ91IGnDp2luIGRpc2Nvbm5lY3RlZENhbGxiYWNrIHBhcmVudCBkZcSfacWfaW1peWxlIHRldGlrbGVuaXIg4oCUIGVsZW1lbnRcclxuXHRcdFx0Ly8gZ2Vyw6dla3RlbiBkZXN0cm95IGVkaWxtaXlvci4gYHByZXNlcnZlV2ViQ29tcG9uZW50RWxlbWVudGAgw7ZuY2VzaW5kZSBTdHJhdGVneVxyXG5cdFx0XHQvLyBgX19hcmlsUHJlc2VydmVEdXJpbmdEZXRhY2hgIGZsYWcnaSBzZXQgZWRpeW9yOyBvIGZsYWcgdmFyc2EgdmlldyBrb3J1bnVyLlxyXG5cdFx0XHRjb25zdCBwcmVzZXJ2ZUZsYWcgPSAodGhpcyBhcyBIVE1MRWxlbWVudCAmIHsgX19hcmlsUHJlc2VydmVEdXJpbmdEZXRhY2g/OiBib29sZWFuIH0pLl9fYXJpbFByZXNlcnZlRHVyaW5nRGV0YWNoO1xyXG5cdFx0XHRpZiAocHJlc2VydmVGbGFnKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEZsYWcgeW9rIOKGkiBnZXLDp2VrIGRlc3Ryb3kuIEFzeW5jIHJlLWNvbm5lY3QgaWh0aW1hbGluZSBrYXLFn8SxIG1pY3JvdGFzayBzxLFuxLFybMSxXHJcblx0XHRcdC8vIGRlZmFuc2lmIGdlY2lrbWU7IGJpciBzb25yYWtpIHRpY2sndGUgaMOibMOiIGRpc2Nvbm5lY3RlZCBtxLEgZGl5ZSBzb24ga29udHJvbC5cclxuXHRcdFx0aWYgKHRoaXMuZGVzdHJveVRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZXIpO1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc0Nvbm5lY3RlZCAmJiB0aGlzLmNvbXBSZWYpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbYm9vdDoke19hcHBOYW1lfV0gZ2Vyw6dlayBkZXN0cm95IOKGkiB2aWV3ICsgY2hpbGQgaW5qZWN0b3IgZGVzdHJveWApO1xyXG5cdFx0XHRcdFx0Ly8gU2hhcmVkIGFwcCdlIEFTTEEgZG9rdW5tYTsgc2FkZWNlIGJ1IHRhYifEsW4gdmlldyfEsW7EsSB2ZSBjaGlsZCBpbmplY3RvcifEsW7EsSB5xLFrLlxyXG5cdFx0XHRcdFx0aWYgKHNoYXJlZEFwcFJlZikgc2hhcmVkQXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wUmVmLmhvc3RWaWV3KTtcclxuXHRcdFx0XHRcdHRoaXMuY29tcFJlZi5kZXN0cm95KCk7XHJcblx0XHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3I/LmRlc3Ryb3koKTtcclxuXHRcdFx0XHRcdHRoaXMuY29tcFJlZiA9IG51bGw7XHJcblx0XHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3IgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5kZXN0cm95VGltZXIgPSBudWxsO1xyXG5cdFx0XHR9LCAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRyeSB7XHJcblx0XHRjdXN0b21FbGVtZW50cy5kZWZpbmUoYGFwcC0ke2FwcE5hbWV9YCwgTUZFQXBwRWxlbWVudCk7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0aWYgKGUgaW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZS5uYW1lID09PSAnTm90U3VwcG9ydGVkRXJyb3InKSB7XHJcblx0XHRcdGNvbnNvbGUud2FybihgW2Jvb3Q6JHthcHBOYW1lfV0gY3VzdG9tIGVsZW1lbnQgemF0ZW4gdGFuxLFtbMSxLCBkZWZpbmUgYXRsYW5kxLFgKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhyb3cgZTtcclxuXHR9XHJcbn07XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Injectable, effect, inject } from '@angular/core';
1
+ import { Injectable, effect, inject, untracked } from '@angular/core';
2
2
  import { NavigationEnd, Router } from '@angular/router';
3
3
  import { filter } from 'rxjs';
4
4
  import { bridge } from 'aril/boot/bridge';
@@ -27,7 +27,12 @@ export class BreadcrumbPublisherService {
27
27
  // değerleri sonradan geldikçe listeyi yeniden yayınla.
28
28
  this.breadcrumbService.keyValues();
29
29
  this.publishFromCurrentRoute();
30
- });
30
+ },
31
+ // `publishFromCurrentRoute` → `publish` içinde `bridge.breadcrumbs.set` / `bridge.pageTitle.set`
32
+ // signal write yapar; effect içinden signal write default'ta NG0600 fırlatır. aril genelindeki
33
+ // effect'lerle aynı şekilde `allowSignalWrites` ile izin veriyoruz. (MF shared core öncesi
34
+ // cross-core split bu guard'ı maskeliyordu; tek core olunca yüzeye çıktı — davranış aynı.)
35
+ { allowSignalWrites: true });
31
36
  }
32
37
  ngOnDestroy() {
33
38
  this.routerSubscription?.unsubscribe();
@@ -62,7 +67,10 @@ export class BreadcrumbPublisherService {
62
67
  publish(breadcrumbs) {
63
68
  bridge.breadcrumbs.set(breadcrumbs);
64
69
  const lastLabel = breadcrumbs[breadcrumbs.length - 1]?.label ?? '';
65
- if (bridge.pageTitle() || lastLabel) {
70
+ // untracked ZORUNLU: publish, constructor'daki effect'in çağrı grafiğinde çalışır. Tracked
71
+ // okuma effect'i kendi yazdığı pageTitle'a abone eder; tab başına bir publisher instance
72
+ // olduğundan iki tab farklı title yazarak birbirini sonsuz döngüde tetiklerdi.
73
+ if (untracked(bridge.pageTitle) || lastLabel) {
66
74
  bridge.pageTitle.set(lastLabel);
67
75
  }
68
76
  this.pubSubService.publish({
@@ -83,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
83
91
  type: Injectable,
84
92
  args: [{ providedIn: 'root' }]
85
93
  }], ctorParameters: () => [] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1wdWJsaXNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L3NlcnZpY2UvYnJlYWRjcnVtYi1wdWJsaXNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEYsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFekQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sMEJBQTBCO0lBT3RDO1FBTmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFLdEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7UUFFbEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLHNFQUFzRTtZQUN0RSx1REFBdUQ7WUFDdkQs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TCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2dCQUNyQixNQUFNLEVBQUU7b0JBQ1AsV0FBVztvQkFDWCxTQUFTLEVBQUUsU0FBUztpQkFDcEI7YUFDRDtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7OEdBekVXLDBCQUEwQjtrSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7MkZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQnJlYWRjcnVtYiwgYnJpZGdlIH0gZnJvbSAnYXJpbC9ib290L2JyaWRnZSc7XHJcbmltcG9ydCB7IFB1YlN1YlNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvcHViLXN1Yic7XHJcblxyXG5pbXBvcnQgeyBCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4vYnJlYWRjcnVtYi5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBNRkUtc2lkZSByb3V0ZSBhxJ9hY8SxbsSxIGRvbGHFn8SxcCBha3RpZiByb3V0ZSB6aW5jaXJpbmluIGJyZWFkY3J1bWIgbGlzdGVzaW5pXHJcbiAqIGBicmlkZ2UuYnJlYWRjcnVtYnNgIHNpZ25hbCdpbmUgeWF6YXIuIFNoZWxsIGxheW91dCBidSBzaWduYWwnaSBva3V5dXBcclxuICogYnJlYWRjcnVtYiDFn2VyaWRpbmkgcmVuZGVyIGVkZXI7IHByZXNlbnRlciBzaGVsbCdkZSwgc291cmNlLW9mLXRydXRoIE1GRSdkZS5cclxuICpcclxuICogRXNraSBgPGFwcC1icmVhZGNydW1iPmAgY29tcG9uZW50J2luaW4gbG9naWMnaSBidSBzZXJ2aWNlJ2UgdGHFn8Sxbm3EscWfdMSxci5cclxuICogR2VyaXllIGTDtm7DvGsgdXl1bWx1bHVrIGnDp2luIGBicmVhZGNydW1iVXBkYXRlZGAgUHViU3ViIGV2ZW50J2kgaMOibMOiIHlhecSxbmxhbsSxclxyXG4gKiAoaGlzdG9yeS5zZXJ2aWNlIGFib25lKS5cclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iUHVibGlzaGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGJyZWFkY3J1bWJTZXJ2aWNlID0gaW5qZWN0KEJyZWFkY3J1bWJTZXJ2aWNlKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IHB1YlN1YlNlcnZpY2UgPSBpbmplY3QoUHViU3ViU2VydmljZSk7XHJcblxyXG5cdHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcclxuXHRcdFx0LnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnB1Ymxpc2hGcm9tQ3VycmVudFJvdXRlKCkpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdC8vIGtleVZhbHVlcyBzaW55YWxpbmkgZGlubGU7IGRpbmFtaWsgYnJlYWRjcnVtYiAow7Zybi4gXCJ7Y3VzdG9tZXJJZH1cIilcclxuXHRcdFx0Ly8gZGXEn2VybGVyaSBzb25yYWRhbiBnZWxkaWvDp2UgbGlzdGV5aSB5ZW5pZGVuIHlhecSxbmxhLlxyXG5cdFx0XHR0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmtleVZhbHVlcygpO1xyXG5cdFx0XHR0aGlzLnB1Ymxpc2hGcm9tQ3VycmVudFJvdXRlKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2hGcm9tQ3VycmVudFJvdXRlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgcm9vdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3Q7XHJcblx0XHRjb25zdCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XHJcblx0XHR0aGlzLmNvbGxlY3Qocm9vdCwgW10sIGJyZWFkY3J1bWJzKTtcclxuXHRcdHRoaXMucHVibGlzaChicmVhZGNydW1icyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNvbGxlY3Qocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHBhcmVudFVybDogc3RyaW5nW10sIGJyZWFkY3J1bWJzOiBCcmVhZGNydW1iW10pOiB2b2lkIHtcclxuXHRcdGNvbnN0IHJvdXRlVXJsID0gcGFyZW50VXJsLmNvbmNhdChyb3V0ZS51cmwubWFwKCh1cmwpID0+IHVybC5wYXRoKSk7XHJcblx0XHRjb25zdCBicmVhZGNydW1iID0gcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddO1xyXG5cdFx0Y29uc3QgcGFyZW50QnJlYWRjcnVtYiA9IHJvdXRlLnBhcmVudCAmJiByb3V0ZS5wYXJlbnQuZGF0YSA/IHJvdXRlLnBhcmVudC5kYXRhWydicmVhZGNydW1iJ10gOiBudWxsO1xyXG5cclxuXHRcdGlmIChicmVhZGNydW1iICYmIGJyZWFkY3J1bWIgIT09IHBhcmVudEJyZWFkY3J1bWIpIHtcclxuXHRcdFx0Y29uc3QgdGVtcGxhdGUgPSBicmVhZGNydW1iIGFzIHN0cmluZztcclxuXHRcdFx0Ly8gVMO8bSBge2tleX1gIHBsYWNlaG9sZGVyJ2xhcsSxbsSxIHPEsXJheWxhIHJlc29sdmUgZXQg4oCUIGdsb2JhbCByZWdleC5cclxuXHRcdFx0Ly8gRXNraWRlbiB0ZWsgcGxhY2Vob2xkZXIgcmVnZXgnaSAoYGV4ZWNgKSBpbGUgeWFsbsSxeiBpbGsga2V5IGFsxLFuxLF5b3JkdTtcclxuXHRcdFx0Ly8gYCdDdXN0b21lciB7Y3VzdG9tZXJJZH0gLSBTZXJ2aWNlIHtzZXJ2aWNlUG9pbnRJZH0nYCBmb3JtYXTEsW5kYSBgc2VydmljZVBvaW50SWRgXHJcblx0XHRcdC8vIGxpdGVyYWwga2FsxLF5b3JkdS4gUmVzb2x2ZSBvbG1heWFuIGtleSBpw6dpbiBgJy4uLidgIHBsYWNlaG9sZGVyIGTDtm5lcjsgc3RhdGlrXHJcblx0XHRcdC8vIGvEsXPEsW1sYXIga29ydW51ciAow7ZuY2VkZW4gdMO8bSBsYWJlbCBgJy4uLidgJ2EgZMO8xZ/DvHlvcmR1KS5cclxuXHRcdFx0Y29uc3QgbGFiZWwgPSB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHsoW159XSspXFx9L2csIChfLCBrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5icmVhZGNydW1iU2VydmljZS5nZXRWYWx1ZShrZXkpO1xyXG5cdFx0XHRcdHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJyA/IFN0cmluZyh2YWx1ZSkgOiAnLi4uJztcclxuXHRcdFx0fSk7XHJcblx0XHRcdGJyZWFkY3J1bWJzLnB1c2goeyBsYWJlbCwgdXJsOiAnLycgKyByb3V0ZVVybC5qb2luKCcvJykgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuXHRcdFx0dGhpcy5jb2xsZWN0KHJvdXRlLmZpcnN0Q2hpbGQsIHJvdXRlVXJsLCBicmVhZGNydW1icyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2goYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSk6IHZvaWQge1xyXG5cdFx0YnJpZGdlLmJyZWFkY3J1bWJzLnNldChicmVhZGNydW1icyk7XHJcblxyXG5cdFx0Y29uc3QgbGFzdExhYmVsID0gYnJlYWRjcnVtYnNbYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0/LmxhYmVsID8/ICcnO1xyXG5cdFx0aWYgKGJyaWRnZS5wYWdlVGl0bGUoKSB8fCBsYXN0TGFiZWwpIHtcclxuXHRcdFx0YnJpZGdlLnBhZ2VUaXRsZS5zZXQobGFzdExhYmVsKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnB1YlN1YlNlcnZpY2UucHVibGlzaCh7XHJcblx0XHRcdG5hbWU6ICdicmVhZGNydW1iVXBkYXRlZCcsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRwYXRoOiB0aGlzLnJvdXRlci51cmwsXHJcblx0XHRcdFx0Y3VzdG9tOiB7XHJcblx0XHRcdFx0XHRicmVhZGNydW1icyxcclxuXHRcdFx0XHRcdHBhZ2VUaXRsZTogbGFzdExhYmVsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1wdWJsaXNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L3NlcnZpY2UvYnJlYWRjcnVtYi1wdWJsaXNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBMEIsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhGLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBYyxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXpEOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQU90QztRQU5pQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBS3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBRWxELE1BQU0sQ0FDTCxHQUFHLEVBQUU7WUFDSixzRUFBc0U7WUFDdEUsdURB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QUFDO1lBQzlDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMxQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLElBQUksRUFBRTtnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2dCQUNyQixNQUFNLEVBQUU7b0JBQ1AsV0FBVztvQkFDWCxTQUFTLEVBQUUsU0FBUztpQkFDcEI7YUFDRDtTQUNELENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkZXLDBCQUEwQjtrSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7MkZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGVmZmVjdCwgaW5qZWN0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCcmVhZGNydW1iLCBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuaW1wb3J0IHsgUHViU3ViU2VydmljZSB9IGZyb20gJ2FyaWwvdXRpbC9wdWItc3ViJztcclxuXHJcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlIH0gZnJvbSAnLi9icmVhZGNydW1iLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIE1GRS1zaWRlIHJvdXRlIGHEn2FjxLFuxLEgZG9sYcWfxLFwIGFrdGlmIHJvdXRlIHppbmNpcmluaW4gYnJlYWRjcnVtYiBsaXN0ZXNpbmlcclxuICogYGJyaWRnZS5icmVhZGNydW1ic2Agc2lnbmFsJ2luZSB5YXphci4gU2hlbGwgbGF5b3V0IGJ1IHNpZ25hbCdpIG9rdXl1cFxyXG4gKiBicmVhZGNydW1iIMWfZXJpZGluaSByZW5kZXIgZWRlcjsgcHJlc2VudGVyIHNoZWxsJ2RlLCBzb3VyY2Utb2YtdHJ1dGggTUZFJ2RlLlxyXG4gKlxyXG4gKiBFc2tpIGA8YXBwLWJyZWFkY3J1bWI+YCBjb21wb25lbnQnaW5pbiBsb2dpYydpIGJ1IHNlcnZpY2UnZSB0YcWfxLFubcSxxZ90xLFyLlxyXG4gKiBHZXJpeWUgZMO2bsO8ayB1eXVtbHVsdWsgacOnaW4gYGJyZWFkY3J1bWJVcGRhdGVkYCBQdWJTdWIgZXZlbnQnaSBow6Jsw6IgeWF5xLFubGFuxLFyXHJcbiAqIChoaXN0b3J5LnNlcnZpY2UgYWJvbmUpLlxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJQdWJsaXNoZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgYnJlYWRjcnVtYlNlcnZpY2UgPSBpbmplY3QoQnJlYWRjcnVtYlNlcnZpY2UpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgcHViU3ViU2VydmljZSA9IGluamVjdChQdWJTdWJTZXJ2aWNlKTtcclxuXHJcblx0cHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMucHVibGlzaEZyb21DdXJyZW50Um91dGUoKSk7XHJcblxyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Ly8ga2V5VmFsdWVzIHNpbnlhbGluaSBkaW5sZTsgZGluYW1payBicmVhZGNydW1iICjDtnJuLiBcIntjdXN0b21lcklkfVwiKVxyXG5cdFx0XHRcdC8vIGRlxJ9lcmxlcmkgc29ucmFkYW4gZ2VsZGlrw6dlIGxpc3RleWkgeWVuaWRlbiB5YXnEsW5sYS5cclxuXHRcdFx0XHR0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmtleVZhbHVlcygpO1xyXG5cdFx0XHRcdHRoaXMucHVibGlzaEZyb21DdXJyZW50Um91dGUoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gYHB1Ymxpc2hGcm9tQ3VycmVudFJvdXRlYCDihpIgYHB1Ymxpc2hgIGnDp2luZGUgYGJyaWRnZS5icmVhZGNydW1icy5zZXRgIC8gYGJyaWRnZS5wYWdlVGl0bGUuc2V0YFxyXG5cdFx0XHQvLyBzaWduYWwgd3JpdGUgeWFwYXI7IGVmZmVjdCBpw6dpbmRlbiBzaWduYWwgd3JpdGUgZGVmYXVsdCd0YSBORzA2MDAgZsSxcmxhdMSxci4gYXJpbCBnZW5lbGluZGVraVxyXG5cdFx0XHQvLyBlZmZlY3QnbGVybGUgYXluxLEgxZ9la2lsZGUgYGFsbG93U2lnbmFsV3JpdGVzYCBpbGUgaXppbiB2ZXJpeW9ydXouIChNRiBzaGFyZWQgY29yZSDDtm5jZXNpXHJcblx0XHRcdC8vIGNyb3NzLWNvcmUgc3BsaXQgYnUgZ3VhcmQnxLEgbWFza2VsaXlvcmR1OyB0ZWsgY29yZSBvbHVuY2EgecO8emV5ZSDDp8Sxa3TEsSDigJQgZGF2cmFuxLHFnyBheW7EsS4pXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2hGcm9tQ3VycmVudFJvdXRlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgcm9vdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3Q7XHJcblx0XHRjb25zdCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XHJcblx0XHR0aGlzLmNvbGxlY3Qocm9vdCwgW10sIGJyZWFkY3J1bWJzKTtcclxuXHRcdHRoaXMucHVibGlzaChicmVhZGNydW1icyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNvbGxlY3Qocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHBhcmVudFVybDogc3RyaW5nW10sIGJyZWFkY3J1bWJzOiBCcmVhZGNydW1iW10pOiB2b2lkIHtcclxuXHRcdGNvbnN0IHJvdXRlVXJsID0gcGFyZW50VXJsLmNvbmNhdChyb3V0ZS51cmwubWFwKCh1cmwpID0+IHVybC5wYXRoKSk7XHJcblx0XHRjb25zdCBicmVhZGNydW1iID0gcm91dGUuZGF0YVsnYnJlYWRjcnVtYiddO1xyXG5cdFx0Y29uc3QgcGFyZW50QnJlYWRjcnVtYiA9IHJvdXRlLnBhcmVudCAmJiByb3V0ZS5wYXJlbnQuZGF0YSA/IHJvdXRlLnBhcmVudC5kYXRhWydicmVhZGNydW1iJ10gOiBudWxsO1xyXG5cclxuXHRcdGlmIChicmVhZGNydW1iICYmIGJyZWFkY3J1bWIgIT09IHBhcmVudEJyZWFkY3J1bWIpIHtcclxuXHRcdFx0Y29uc3QgdGVtcGxhdGUgPSBicmVhZGNydW1iIGFzIHN0cmluZztcclxuXHRcdFx0Ly8gVMO8bSBge2tleX1gIHBsYWNlaG9sZGVyJ2xhcsSxbsSxIHPEsXJheWxhIHJlc29sdmUgZXQg4oCUIGdsb2JhbCByZWdleC5cclxuXHRcdFx0Ly8gRXNraWRlbiB0ZWsgcGxhY2Vob2xkZXIgcmVnZXgnaSAoYGV4ZWNgKSBpbGUgeWFsbsSxeiBpbGsga2V5IGFsxLFuxLF5b3JkdTtcclxuXHRcdFx0Ly8gYCdDdXN0b21lciB7Y3VzdG9tZXJJZH0gLSBTZXJ2aWNlIHtzZXJ2aWNlUG9pbnRJZH0nYCBmb3JtYXTEsW5kYSBgc2VydmljZVBvaW50SWRgXHJcblx0XHRcdC8vIGxpdGVyYWwga2FsxLF5b3JkdS4gUmVzb2x2ZSBvbG1heWFuIGtleSBpw6dpbiBgJy4uLidgIHBsYWNlaG9sZGVyIGTDtm5lcjsgc3RhdGlrXHJcblx0XHRcdC8vIGvEsXPEsW1sYXIga29ydW51ciAow7ZuY2VkZW4gdMO8bSBsYWJlbCBgJy4uLidgJ2EgZMO8xZ/DvHlvcmR1KS5cclxuXHRcdFx0Y29uc3QgbGFiZWwgPSB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHsoW159XSspXFx9L2csIChfLCBrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5icmVhZGNydW1iU2VydmljZS5nZXRWYWx1ZShrZXkpO1xyXG5cdFx0XHRcdHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJyA/IFN0cmluZyh2YWx1ZSkgOiAnLi4uJztcclxuXHRcdFx0fSk7XHJcblx0XHRcdGJyZWFkY3J1bWJzLnB1c2goeyBsYWJlbCwgdXJsOiAnLycgKyByb3V0ZVVybC5qb2luKCcvJykgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuXHRcdFx0dGhpcy5jb2xsZWN0KHJvdXRlLmZpcnN0Q2hpbGQsIHJvdXRlVXJsLCBicmVhZGNydW1icyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1Ymxpc2goYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJbXSk6IHZvaWQge1xyXG5cdFx0YnJpZGdlLmJyZWFkY3J1bWJzLnNldChicmVhZGNydW1icyk7XHJcblxyXG5cdFx0Y29uc3QgbGFzdExhYmVsID0gYnJlYWRjcnVtYnNbYnJlYWRjcnVtYnMubGVuZ3RoIC0gMV0/LmxhYmVsID8/ICcnO1xyXG5cdFx0Ly8gdW50cmFja2VkIFpPUlVOTFU6IHB1Ymxpc2gsIGNvbnN0cnVjdG9yJ2Rha2kgZWZmZWN0J2luIMOnYcSfcsSxIGdyYWZpxJ9pbmRlIMOnYWzEscWfxLFyLiBUcmFja2VkXHJcblx0XHQvLyBva3VtYSBlZmZlY3QnaSBrZW5kaSB5YXpkxLHEn8SxIHBhZ2VUaXRsZSdhIGFib25lIGVkZXI7IHRhYiBiYcWfxLFuYSBiaXIgcHVibGlzaGVyIGluc3RhbmNlXHJcblx0XHQvLyBvbGR1xJ91bmRhbiBpa2kgdGFiIGZhcmtsxLEgdGl0bGUgeWF6YXJhayBiaXJiaXJpbmkgc29uc3V6IGTDtm5nw7xkZSB0ZXRpa2xlcmRpLlxyXG5cdFx0aWYgKHVudHJhY2tlZChicmlkZ2UucGFnZVRpdGxlKSB8fCBsYXN0TGFiZWwpIHtcclxuXHRcdFx0YnJpZGdlLnBhZ2VUaXRsZS5zZXQobGFzdExhYmVsKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnB1YlN1YlNlcnZpY2UucHVibGlzaCh7XHJcblx0XHRcdG5hbWU6ICdicmVhZGNydW1iVXBkYXRlZCcsXHJcblx0XHRcdGRhdGE6IHtcclxuXHRcdFx0XHRwYXRoOiB0aGlzLnJvdXRlci51cmwsXHJcblx0XHRcdFx0Y3VzdG9tOiB7XHJcblx0XHRcdFx0XHRicmVhZGNydW1icyxcclxuXHRcdFx0XHRcdHBhZ2VUaXRsZTogbGFzdExhYmVsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L3NlcnZpY2UvaW50ZXJmYWNlcy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2VzIH0gZnJvbSAnYXJpbC91dGlsL2xpYic7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuL2VudW0nO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0Qm94SXRlbSA9XHJcblx0fCBJbnRlcmZhY2VzLk1hcFN0cmluZ1N0cmluZ1xyXG5cdHwgSW50ZXJmYWNlcy5NYXBTdHJpbmdOdW1iZXJcclxuXHR8IEludGVyZmFjZXMuTWFwTnVtYmVyU3RyaW5nXHJcblx0fCBJbnRlcmZhY2VzLk1hcE51bWJlck51bWJlcjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uUmVxdWVzdERUTyB7XHJcblx0Z3JvdXBOYW1lOiBzdHJpbmc7XHJcblx0cGFyYW1ldGVycz86IFBhcmFtZXRlcnM7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5Pzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJzIHtcclxuXHRhZGRpdGlvbmFsUHJvcDE6IEFkZGl0aW9uYWxQcm9wO1xyXG5cdGFkZGl0aW9uYWxQcm9wMjogQWRkaXRpb25hbFByb3A7XHJcblx0YWRkaXRpb25hbFByb3AzOiBBZGRpdGlvbmFsUHJvcDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsUHJvcCB7fVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25Hcm91cERUTyB7XHJcblx0aWQ6IG51bWJlcjtcclxuXHRncm91cE5hbWU6IHN0cmluZztcclxuXHRncm91cERlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblx0Z3JvdXBDb21tZW50OiBzdHJpbmc7XHJcblx0bG9hZFN0cmF0ZWd5OiBzdHJpbmc7XHJcblx0ZHluYW1pY1F1ZXJ5OiBzdHJpbmc7XHJcblx0cGFyZW50R3JvdXBJZDogbnVtYmVyO1xyXG5cdHNlbGVjdGlvbkl0ZW1zOiBTZWxlY3Rpb25JdGVtW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uSXRlbSB7XHJcblx0aWQ6IG51bWJlcjtcclxuXHRncm91cElkOiBudW1iZXI7XHJcblx0c2VsZWN0aW9uS2V5OiBzdHJpbmc7XHJcblx0c2VsZWN0aW9uRGlzcGxheTogc3RyaW5nO1xyXG5cdHNob3dPcmRlcjogbnVtYmVyO1xyXG5cdHBhcmVudFNlbGVjdGlvbktleTogc3RyaW5nO1xyXG5cdHNlbGVjdGlvbk11bHRpTGFuZ3VhZ2VEaXNwbGF5cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2Uge1xyXG5cdG5hbWU6IHN0cmluZztcclxuXHRjb2RlOiBMYW5ndWFnZUNvZGU7XHJcblx0ZmxhZzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VDaGFuZ2VFdmVudCB7XHJcblx0bmFtZTogJ2xhbmd1YWdlQ2hhbmdlZCc7XHJcblx0ZGF0YToge1xyXG5cdFx0cGF0aDogc3RyaW5nO1xyXG5cdFx0Y3VzdG9tOiB7XHJcblx0XHRcdGxhbmd1YWdlOiBMYW5ndWFnZUNvZGU7XHJcblx0XHR9O1xyXG5cdH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50UmVzcG9uc2VEVE8ge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0Y2xpZW50UmVmZXJlbmNlS2V5OiBzdHJpbmc7XHJcblx0bmFtZTogc3RyaW5nO1xyXG5cdGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblx0c2VjcmV0OiBzdHJpbmc7XHJcblx0dXBzdHJlYW1JZDogc3RyaW5nO1xyXG5cdGJhc2VVcmw6IHN0cmluZztcclxuXHR2ZW5kb3JJbmZvPzogc3RyaW5nO1xyXG5cdHZlbmRvclBob25lTnVtYmVyPzogc3RyaW5nO1xyXG5cdGxvZ29Vcmw6IHN0cmluZztcclxuXHRjcmVhdGVEYXRlOiBzdHJpbmc7XHJcblx0bGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0QWxsQ2xpZW50UmVxdWVzdERUTyB7XHJcblx0Zmlyc3Q6IG51bWJlcjtcclxuXHRtYXg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZXRSb2xlUmVxdWVzdERUTyB7XHJcblx0Y2xpZW50SWQ6IHN0cmluZztcclxuXHRuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXR5VHJlZVJlc3BvbnNlRFRPIHtcclxuXHRpZDogbnVtYmVyO1xyXG5cdG5hbWU6IHN0cmluZztcclxuXHRwYXJlbnRJZDogbnVtYmVyO1xyXG5cdHN0YXJ0TGV2ZWw6IHN0cmluZztcclxuXHRlbmRMZXZlbDogc3RyaW5nO1xyXG5cdHRyZWVMZXZlbDogc3RyaW5nO1xyXG5cdGNoaWxkcmVuOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8vIE5vdGlmaWNhdGlvbnNcclxuZXhwb3J0IGludGVyZmFjZSBTbXNFbWFpbEF1ZGl0UmVxdWVzdER0byB7XHJcblx0c3RhcnREYXRlOiBudW1iZXI7XHJcblx0ZW5kRGF0ZTogbnVtYmVyO1xyXG5cdGF1ZGl0VHlwZT86IHN0cmluZztcclxuXHR0ZW1wbGF0ZUNvZGVzPzogc3RyaW5nW107XHJcblx0ZGV0YWlsTm90aWZpY2F0aW9uVHlwZT86IHN0cmluZztcclxuXHRzdGF0dXM/OiBzdHJpbmc7XHJcblx0cmVmQXNzZXRDb2RlPzogc3RyaW5nO1xyXG5cdHJlZk1kSWQ/OiBudW1iZXI7XHJcblx0cmVmZXJlbmNlSWQ/OiBzdHJpbmc7XHJcblx0dHJhY2VJZD86IHN0cmluZztcclxuXHRyZWFkOiBib29sZWFuO1xyXG5cdHBhZ2VyPzogUGFnZXI7XHJcblx0dXNlcm5hbWU/OiBzdHJpbmc7XHJcblx0c3RhcnRSZWFkVGltZT86IG51bWJlcjtcclxuXHRlbmRSZWFkVGltZT86IG51bWJlcjtcclxuXHR0b0xpc3Q/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8ge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0dGltZXN0YW1wOiBudW1iZXI7XHJcblx0dXNlcm5hbWU6IHN0cmluZztcclxuXHR0eXBlOiBzdHJpbmc7XHJcblx0c2VuZGluZ0RhdGU6IG51bWJlcjtcclxuXHRmcm9tOiBzdHJpbmc7XHJcblx0dG86IHN0cmluZztcclxuXHRjb250ZW50OiBzdHJpbmc7XHJcblx0dGVtcGxhdGVDb2RlOiBzdHJpbmc7XHJcblx0dGVtcGxhdGVUaXRsZTogc3RyaW5nO1xyXG5cdHN0YXR1czogc3RyaW5nO1xyXG5cdGVycm9yRGV0YWlsOiBzdHJpbmc7XHJcblx0cmVmQXNzZXRDb2RlOiBzdHJpbmc7XHJcblx0cmVmTWRJZDogbnVtYmVyO1xyXG5cdHJlZmVyZW5jZUlkOiBzdHJpbmc7XHJcblx0cmVhZDogYm9vbGVhbjtcclxuXHRyZWFkVGltZTogbnVtYmVyO1xyXG5cdHRyYWNlSWQ6IHN0cmluZztcclxuXHRkZXRhaWxOb3RpZmljYXRpb25UeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXIge1xyXG5cdHBhZ2VTaXplOiBudW1iZXI7XHJcblx0cGFnZU51bWJlcjogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlPFQ+IHtcclxuXHRyZXN1bHRJbmZvOiBSZXN1bHRJbmZvO1xyXG5cdHJlc3VsdDogVFtdO1xyXG5cdHNlYXJjaEFmdGVyVmFsdWVzPzogb2JqZWN0W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHRJbmZvIHtcclxuXHR0b3RhbFBhZ2U6IG51bWJlcjtcclxuXHR0b3RhbEl0ZW06IG51bWJlcjtcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L3NlcnZpY2UvaW50ZXJmYWNlcy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2VzIH0gZnJvbSAnYXJpbC91dGlsL2xpYic7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuL2VudW0nO1xyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0Qm94SXRlbSA9XHJcblx0fCBJbnRlcmZhY2VzLk1hcFN0cmluZ1N0cmluZ1xyXG5cdHwgSW50ZXJmYWNlcy5NYXBTdHJpbmdOdW1iZXJcclxuXHR8IEludGVyZmFjZXMuTWFwTnVtYmVyU3RyaW5nXHJcblx0fCBJbnRlcmZhY2VzLk1hcE51bWJlck51bWJlcjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uUmVxdWVzdERUTyB7XHJcblx0Z3JvdXBOYW1lOiBzdHJpbmc7XHJcblx0cGFyYW1ldGVycz86IFBhcmFtZXRlcnM7XHJcblx0cGFyZW50U2VsZWN0aW9uS2V5Pzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJzIHtcclxuXHRhZGRpdGlvbmFsUHJvcDE6IEFkZGl0aW9uYWxQcm9wO1xyXG5cdGFkZGl0aW9uYWxQcm9wMjogQWRkaXRpb25hbFByb3A7XHJcblx0YWRkaXRpb25hbFByb3AzOiBBZGRpdGlvbmFsUHJvcDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsUHJvcCB7fVxyXG5cclxuLy8gU2VsZWN0aW9uR3JvdXBEVE8gKyBTZWxlY3Rpb25JdGVtIGJyaWRnZSdkZSB0YW7EsW1sxLEgKGNhY2hlIHN0YXRlIG9yYWRhIHlhxZ/EsXlvcik7IGNpcmN1bGFyJ8SxIMO2bmxlbWVrXHJcbi8vIGnDp2luIGJ1cmFkYW4gcmUtZXhwb3J0IGVkaWxpciDigJQgbWV2Y3V0IHTDvGtldGljaWxlciBgYXJpbC90aGVtZS9sYXlvdXRgJ3RhbiBpbXBvcnQgZXRtZXllIGRldmFtIGVkZXIuXHJcbmV4cG9ydCB0eXBlIHsgU2VsZWN0aW9uR3JvdXBEVE8sIFNlbGVjdGlvbkl0ZW0gfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uR3JvdXBWZXJzaW9uRFRPIHtcclxuXHRncm91cE5hbWU6IHN0cmluZztcclxuXHR2ZXJzaW9uOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2Uge1xyXG5cdG5hbWU6IHN0cmluZztcclxuXHRjb2RlOiBMYW5ndWFnZUNvZGU7XHJcblx0ZmxhZzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VDaGFuZ2VFdmVudCB7XHJcblx0bmFtZTogJ2xhbmd1YWdlQ2hhbmdlZCc7XHJcblx0ZGF0YToge1xyXG5cdFx0cGF0aDogc3RyaW5nO1xyXG5cdFx0Y3VzdG9tOiB7XHJcblx0XHRcdGxhbmd1YWdlOiBMYW5ndWFnZUNvZGU7XHJcblx0XHR9O1xyXG5cdH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50UmVzcG9uc2VEVE8ge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0Y2xpZW50UmVmZXJlbmNlS2V5OiBzdHJpbmc7XHJcblx0bmFtZTogc3RyaW5nO1xyXG5cdGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblx0c2VjcmV0OiBzdHJpbmc7XHJcblx0dXBzdHJlYW1JZDogc3RyaW5nO1xyXG5cdGJhc2VVcmw6IHN0cmluZztcclxuXHR2ZW5kb3JJbmZvPzogc3RyaW5nO1xyXG5cdHZlbmRvclBob25lTnVtYmVyPzogc3RyaW5nO1xyXG5cdGxvZ29Vcmw6IHN0cmluZztcclxuXHRjcmVhdGVEYXRlOiBzdHJpbmc7XHJcblx0bGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0QWxsQ2xpZW50UmVxdWVzdERUTyB7XHJcblx0Zmlyc3Q6IG51bWJlcjtcclxuXHRtYXg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZXRSb2xlUmVxdWVzdERUTyB7XHJcblx0Y2xpZW50SWQ6IHN0cmluZztcclxuXHRuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aG9yaXR5VHJlZVJlc3BvbnNlRFRPIHtcclxuXHRpZDogbnVtYmVyO1xyXG5cdG5hbWU6IHN0cmluZztcclxuXHRwYXJlbnRJZDogbnVtYmVyO1xyXG5cdHN0YXJ0TGV2ZWw6IHN0cmluZztcclxuXHRlbmRMZXZlbDogc3RyaW5nO1xyXG5cdHRyZWVMZXZlbDogc3RyaW5nO1xyXG5cdGNoaWxkcmVuOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8vIE5vdGlmaWNhdGlvbnNcclxuZXhwb3J0IGludGVyZmFjZSBTbXNFbWFpbEF1ZGl0UmVxdWVzdER0byB7XHJcblx0c3RhcnREYXRlOiBudW1iZXI7XHJcblx0ZW5kRGF0ZTogbnVtYmVyO1xyXG5cdGF1ZGl0VHlwZT86IHN0cmluZztcclxuXHR0ZW1wbGF0ZUNvZGVzPzogc3RyaW5nW107XHJcblx0ZGV0YWlsTm90aWZpY2F0aW9uVHlwZT86IHN0cmluZztcclxuXHRzdGF0dXM/OiBzdHJpbmc7XHJcblx0cmVmQXNzZXRDb2RlPzogc3RyaW5nO1xyXG5cdHJlZk1kSWQ/OiBudW1iZXI7XHJcblx0cmVmZXJlbmNlSWQ/OiBzdHJpbmc7XHJcblx0dHJhY2VJZD86IHN0cmluZztcclxuXHRyZWFkOiBib29sZWFuO1xyXG5cdHBhZ2VyPzogUGFnZXI7XHJcblx0dXNlcm5hbWU/OiBzdHJpbmc7XHJcblx0c3RhcnRSZWFkVGltZT86IG51bWJlcjtcclxuXHRlbmRSZWFkVGltZT86IG51bWJlcjtcclxuXHR0b0xpc3Q/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8ge1xyXG5cdGlkOiBzdHJpbmc7XHJcblx0dGltZXN0YW1wOiBudW1iZXI7XHJcblx0dXNlcm5hbWU6IHN0cmluZztcclxuXHR0eXBlOiBzdHJpbmc7XHJcblx0c2VuZGluZ0RhdGU6IG51bWJlcjtcclxuXHRmcm9tOiBzdHJpbmc7XHJcblx0dG86IHN0cmluZztcclxuXHRjb250ZW50OiBzdHJpbmc7XHJcblx0dGVtcGxhdGVDb2RlOiBzdHJpbmc7XHJcblx0dGVtcGxhdGVUaXRsZTogc3RyaW5nO1xyXG5cdHN0YXR1czogc3RyaW5nO1xyXG5cdGVycm9yRGV0YWlsOiBzdHJpbmc7XHJcblx0cmVmQXNzZXRDb2RlOiBzdHJpbmc7XHJcblx0cmVmTWRJZDogbnVtYmVyO1xyXG5cdHJlZmVyZW5jZUlkOiBzdHJpbmc7XHJcblx0cmVhZDogYm9vbGVhbjtcclxuXHRyZWFkVGltZTogbnVtYmVyO1xyXG5cdHRyYWNlSWQ6IHN0cmluZztcclxuXHRkZXRhaWxOb3RpZmljYXRpb25UeXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnZXIge1xyXG5cdHBhZ2VTaXplOiBudW1iZXI7XHJcblx0cGFnZU51bWJlcjogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbnNlPFQ+IHtcclxuXHRyZXN1bHRJbmZvOiBSZXN1bHRJbmZvO1xyXG5cdHJlc3VsdDogVFtdO1xyXG5cdHNlYXJjaEFmdGVyVmFsdWVzPzogb2JqZWN0W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHRJbmZvIHtcclxuXHR0b3RhbFBhZ2U6IG51bWJlcjtcclxuXHR0b3RhbEl0ZW06IG51bWJlcjtcclxufSJdfQ==