@bizdoc/core 1.11.0-next.4 → 1.11.0-next.8

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 (35) hide show
  1. package/esm2020/lib/app.component.mjs +11 -4
  2. package/esm2020/lib/compose/form.component.mjs +3 -5
  3. package/esm2020/lib/compose/trace/trace.pane.component.mjs +2 -2
  4. package/esm2020/lib/core/component-factory-resolver.mjs +9 -2
  5. package/esm2020/lib/core/controls/combination-picker-body.mjs +1 -1
  6. package/esm2020/lib/core/controls/file.input.mjs +45 -16
  7. package/esm2020/lib/core/functions.mjs +1 -1
  8. package/esm2020/lib/core/info/attachment-info.service.mjs +2 -2
  9. package/esm2020/lib/core/mailbox.service.mjs +9 -9
  10. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  11. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  12. package/esm2020/lib/cube/cube.service.mjs +5 -2
  13. package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
  14. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +4 -4
  15. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +5 -4
  16. package/esm2020/lib/cube/matrix/popup.component.mjs +6 -5
  17. package/esm2020/lib/cube/matrix/table.component.mjs +6 -4
  18. package/esm2020/lib/cube/pivot/pivot.component.mjs +13 -1
  19. package/esm2020/lib/dashboard/score/activity.widget.mjs +2 -5
  20. package/esm2020/lib/views/cube/matrix.component.mjs +19 -20
  21. package/fesm2015/bizdoc-core.mjs +128 -75
  22. package/fesm2015/bizdoc-core.mjs.map +1 -1
  23. package/fesm2020/bizdoc-core.mjs +128 -75
  24. package/fesm2020/bizdoc-core.mjs.map +1 -1
  25. package/lib/app.component.d.ts +3 -1
  26. package/lib/core/controls/combination-picker-body.d.ts +2 -0
  27. package/lib/core/controls/file.input.d.ts +1 -0
  28. package/lib/core/functions.d.ts +3 -1
  29. package/lib/core/mailbox.service.d.ts +4 -3
  30. package/lib/cube/cube-info.service.d.ts +2 -2
  31. package/lib/cube/matrix/matrix.base.d.ts +2 -1
  32. package/lib/cube/matrix/table.component.d.ts +3 -2
  33. package/lib/cube/pivot/pivot.component.d.ts +3 -0
  34. package/lib/views/cube/matrix.component.d.ts +1 -3
  35. package/package.json +1 -1
@@ -9,7 +9,10 @@ import { HomeMobileComponent } from './home/home.mobile.component';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "./core/session.service";
11
11
  import * as i2 from "./core/hub.service";
12
+ import * as i3 from "@angular/material/icon";
13
+ import * as i4 from "@angular/platform-browser";
12
14
  const REVISIT_TAB_REFRESH = 10000;
15
+ const EXCEL_ICON = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path d="M38,8H19.3335A2.33373,2.33373,0,0,0,17,10.3335V20H38Z" fill="#21a366"/><path d="M56.6665,8H38V20H59V10.3335A2.33373,2.33373,0,0,0,56.6665,8Z" fill="#33c481"/><rect x="38" y="32" width="21" height="12" fill="#107c41"/><path d="M38,44V32H17V53.6665A2.33373,2.33373,0,0,0,19.3335,56h37.333A2.33373,2.33373,0,0,0,59,53.6665V44Z" fill="#185c37"/><rect x="17" y="20" width="21" height="12" fill="#107c41"/><rect x="38" y="20" width="21" height="12" fill="#21a366"/><path d="M33,20.33008V46.66992a1.73444,1.73444,0,0,1-.04.3999A2.31378,2.31378,0,0,1,30.66992,49H17V18H30.66992A2.326,2.326,0,0,1,33,20.33008Z" opacity="0.2"/><path d="M34,20.33008V44.66992A3.36171,3.36171,0,0,1,30.66992,48H17V17H30.66992A3.34177,3.34177,0,0,1,34,20.33008Z" opacity="0.1"/><path d="M33,20.33008V44.66992A2.326,2.326,0,0,1,30.66992,47H17V18H30.66992A2.326,2.326,0,0,1,33,20.33008Z" opacity="0.2"/><path d="M32,20.33008V44.66992A2.326,2.326,0,0,1,29.66992,47H17V18H29.66992A2.326,2.326,0,0,1,32,20.33008Z" opacity="0.1"/><rect x="4" y="18.00002" width="27.99996" height="27.99996" rx="2.33333" fill="#107c41"/><path d="M11.2256,39.5835l4.90759-7.60465-4.4951-7.56235h3.61724l2.45379,4.83356q.33839.68763.46538,1.02594h.03173q.24318-.54984.50768-1.06825l2.623-4.79125H24.658l-4.61145,7.52,4.72779,7.647H21.24174L18.40718,34.274a4.43255,4.43255,0,0,1-.33845-.70864h-.04231a3.345,3.345,0,0,1-.32788.68749L14.77937,39.5835Z" fill="#fff"/></svg>', WORD_ICON = '<svg viewBox="0 0 560 400" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero"><path d="m380.829 103.753h-146.659c-5.028 0-9.165 4.137-9.165 9.165v38.959l82.498 24.062 82.497-24.062v-38.959c0-5.028-4.137-9.165-9.164-9.165z" fill="#41a5ee"/><path d="m389.993 151.877h-164.994v48.123l82.497 24.062 82.497-24.062z" fill="#2b7cd3"/><path d="m389.993 200h-164.994v48.124l82.497 24.061 82.497-24.061z" fill="#185abd"/><path d="m389.993 248.124h-164.994v38.959c0 5.027 4.136 9.164 9.163 9.164h146.66c5.027 0 9.164-4.137 9.164-9.164z" fill="#103f91"/><path d="m284.582 138.127h-59.583v130.621h59.583c5.022-.015 9.149-4.143 9.164-9.164v-112.286c-.015-5.021-4.142-9.149-9.164-9.164z" fill-opacity=".098039"/><path d="m277.708 145.002h-52.709v130.621h52.709c5.021-.015 9.149-4.143 9.163-9.165v-112.285c-.014-5.021-4.142-9.149-9.163-9.164zm0 0h-52.709v116.871h52.709c5.021-.015 9.149-4.143 9.163-9.164v-98.536c-.014-5.021-4.142-9.149-9.163-9.164zm-6.875 0h-45.834v116.871h45.834c5.021-.015 9.149-4.143 9.163-9.164v-98.536c-.014-5.021-4.142-9.149-9.163-9.164z" fill-opacity=".2"/><path d="m179.164 145.002h91.661c5.028 0 9.165 4.136 9.165 9.164v91.662c0 5.027-4.137 9.163-9.165 9.163h-91.661c-5.027 0-9.164-4.136-9.164-9.163v-91.662c0-5.028 4.137-9.164 9.164-9.164z" fill="#185abd"/><path d="m252.154 234.374h-12.375l-14.437-47.436-15.125 47.436h-12.374l-13.75-68.748h12.375l9.624 48.123 14.438-46.748h10.312l13.75 46.748 9.624-48.123h11.687z" fill="#fff"/></g><path d="m170 90.004h219.993v219.993h-219.993z" fill="none"/></svg>', POWERPOINT_ICON = '<svg viewBox="-0.12979372698077785 0 32.152389301176754 32" xmlns="http://www.w3.org/2000/svg" width="2500" height="2478"><path d="M18 2A14.041 14.041 0 0 0 4 16l17.737 3.737z" fill="#ed6c47"/><path d="M18 2a14.041 14.041 0 0 1 14 14l-7 4.758L18 16z" fill="#ff8f6b"/><path d="M18 30a14.041 14.041 0 0 0 14-14H4a14.041 14.041 0 0 0 14 14z" fill="#d35230"/><path d="M16.666 7h-9.36a13.914 13.914 0 0 0 .93 19h8.43A1.337 1.337 0 0 0 18 24.667V8.333A1.337 1.337 0 0 0 16.666 7z" opacity=".1"/><path d="M15.666 8H6.54a13.906 13.906 0 0 0 2.845 19h6.282A1.337 1.337 0 0 0 17 25.667V9.333A1.337 1.337 0 0 0 15.666 8z" opacity=".2"/><path d="M15.666 8H6.54a13.89 13.89 0 0 0 .766 17h8.361A1.337 1.337 0 0 0 17 23.667V9.333A1.337 1.337 0 0 0 15.666 8z" opacity=".2"/><path d="M14.666 8H6.54a13.89 13.89 0 0 0 .766 17h7.361A1.337 1.337 0 0 0 16 23.667V9.333A1.337 1.337 0 0 0 14.666 8z" opacity=".2"/><path d="M1.333 8h13.334A1.333 1.333 0 0 1 16 9.333v13.334A1.333 1.333 0 0 1 14.667 24H1.333A1.333 1.333 0 0 1 0 22.667V9.333A1.333 1.333 0 0 1 1.333 8z" fill="#c43e1c"/><path d="M7.997 11a4.168 4.168 0 0 1 2.755.805 2.878 2.878 0 0 1 .956 2.331 2.726 2.726 0 0 1-.473 1.588 3.164 3.164 0 0 1-1.344 1.186 4.57 4.57 0 0 1-2.02.424h-1.91V21H4V11zM5.96 15.683h1.687a2.194 2.194 0 0 0 1.492-.444 1.107 1.107 0 0 0 .504-1.026q0-1.659-1.933-1.659H5.96z" fill="#f9f7f7"/><path d="M0 0h32v32H0z" fill="none"/></svg>', PDF_ICON = '<svg enable-background="new 0 0 334.371 380.563" version="1.1" viewBox="0 0 14 16" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.04589 0 0 .04589 -.66877 -.73379)"><polygon points="51.791 356.65 51.791 23.99 204.5 23.99 282.65 102.07 282.65 356.65" fill="#fff" stroke-width="212.65"/><path d="m201.19 31.99 73.46 73.393v243.26h-214.86v-316.66h141.4m6.623-16h-164.02v348.66h246.85v-265.9z" stroke-width="21.791"/></g><g transform="matrix(.04589 0 0 .04589 -.66877 -.73379)"><polygon points="282.65 356.65 51.791 356.65 51.791 23.99 204.5 23.99 206.31 25.8 206.31 100.33 280.9 100.33 282.65 102.07" fill="#fff" stroke-width="212.65"/><path d="m198.31 31.99v76.337h76.337v240.32h-214.86v-316.66h138.52m9.5-16h-164.02v348.66h246.85v-265.9l-6.43-6.424h-69.907v-69.842z" stroke-width="21.791"/></g><g transform="matrix(.04589 0 0 .04589 -.66877 -.73379)" stroke-width="21.791"><polygon points="258.31 87.75 219.64 87.75 219.64 48.667 258.31 86.38"/> <path d="m227.64 67.646 12.41 12.104h-12.41v-12.104m-5.002-27.229h-10.998v55.333h54.666v-12.742z"/></g><g transform="matrix(.04589 0 0 .04589 -.66877 -.73379)" fill="#ed1c24" stroke-width="212.65"><polygon points="311.89 284.49 22.544 284.49 22.544 167.68 37.291 152.94 37.291 171.49 297.15 171.49 297.15 152.94 311.89 167.68"/><path d="m303.65 168.63 1.747 1.747v107.62h-276.35v-107.62l1.747-1.747v9.362h272.85v-9.362m-12.999-31.385v27.747h-246.86v-27.747l-27.747 27.747v126h302.35v-126z"/></g><rect x="1.7219" y="7.9544" width="10.684" height="4.0307" fill="none"/><g transform="matrix(.04589 0 0 .04589 1.7219 11.733)" fill="#fff" stroke-width="21.791" aria-label="PDF"><path d="m9.216 0v-83.2h30.464q6.784 0 12.928 1.408 6.144 1.28 10.752 4.608 4.608 3.2 7.296 8.576 2.816 5.248 2.816 13.056 0 7.68-2.816 13.184-2.688 5.504-7.296 9.088-4.608 3.456-10.624 5.248-6.016 1.664-12.544 1.664h-8.96v26.368zm22.016-43.776h7.936q6.528 0 9.6-3.072 3.2-3.072 3.2-8.704t-3.456-7.936-9.856-2.304h-7.424z"/><path d="m87.04 0v-83.2h24.576q9.472 0 17.28 2.304 7.936 2.304 13.568 7.296t8.704 12.8q3.2 7.808 3.2 18.816t-3.072 18.944-8.704 13.056q-5.504 5.12-13.184 7.552-7.552 2.432-16.512 2.432zm22.016-17.664h1.28q4.48 0 8.448-1.024 3.968-1.152 6.784-3.84 2.944-2.688 4.608-7.424t1.664-12.032-1.664-11.904-4.608-7.168q-2.816-2.56-6.784-3.456-3.968-1.024-8.448-1.024h-1.28z"/><path d="m169.22 0v-83.2h54.272v18.432h-32.256v15.872h27.648v18.432h-27.648v30.464z"/></g></svg>';
13
16
  export class BrokenPage {
14
17
  }
15
18
  BrokenPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BrokenPage, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -21,7 +24,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
21
24
  }]
22
25
  }] });
23
26
  export class BizDocApp {
24
- constructor(_vc, _cfr, _session, _messaging) {
27
+ constructor(_vc, _cfr, _session, _messaging, iconRegistry, sanitizer) {
25
28
  this._vc = _vc;
26
29
  this._cfr = _cfr;
27
30
  this._session = _session;
@@ -34,6 +37,10 @@ export class BizDocApp {
34
37
  document.dir = doc.dir = body.dir = this.dir = 'rtl';
35
38
  enableRtl();
36
39
  }
40
+ iconRegistry.addSvgIconLiteral('excel', sanitizer.bypassSecurityTrustHtml(EXCEL_ICON));
41
+ iconRegistry.addSvgIconLiteral('word', sanitizer.bypassSecurityTrustHtml(WORD_ICON));
42
+ iconRegistry.addSvgIconLiteral('powerpoint', sanitizer.bypassSecurityTrustHtml(POWERPOINT_ICON));
43
+ iconRegistry.addSvgIconLiteral('pdf', sanitizer.bypassSecurityTrustHtml(PDF_ICON));
37
44
  this._session.refresh().subscribe(this._initialize.bind(this));
38
45
  }
39
46
  _initialize() {
@@ -71,7 +78,7 @@ export class BizDocApp {
71
78
  }
72
79
  }
73
80
  }
74
- BizDocApp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BizDocApp, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i1.SessionService }, { token: i2.HubService }], target: i0.ɵɵFactoryTarget.Component });
81
+ BizDocApp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BizDocApp, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i1.SessionService }, { token: i2.HubService }, { token: i3.MatIconRegistry }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
75
82
  BizDocApp.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: BizDocApp, selector: "bizdoc", ngImport: i0, template: '', isInline: true });
76
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BizDocApp, decorators: [{
77
84
  type: Component,
@@ -79,5 +86,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
79
86
  selector: 'bizdoc',
80
87
  template: ''
81
88
  }]
82
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i1.SessionService }, { type: i2.HubService }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYXBwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzRCxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFFbkUsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7QUFLbEMsTUFBTSxPQUFPLFVBQVU7O3VHQUFWLFVBQVU7MkZBQVYsVUFBVSxvREFGWCxFQUFFOzJGQUVELFVBQVU7a0JBSHRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7O0FBUUQsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFDVSxHQUFxQixFQUNyQixJQUE4QixFQUM5QixRQUF3QixFQUN4QixVQUFzQjtRQUh0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUEwQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTmhDLFFBQUcsR0FBYyxLQUFLLENBQUM7UUFDZixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU9yQyxNQUFNLEdB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bEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZW5hYmxlUnRsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSG9tZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSG9tZU1vYmlsZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLm1vYmlsZS5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgUkVWSVNJVF9UQUJfUkVGUkVTSCA9IDEwMDAwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcm9rZW5QYWdlIHtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MnLFxyXG4gIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQml6RG9jQXBwIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBkaXI6IERpcmVjdGlvbiA9ICdsdHInO1xyXG4gIHByaXZhdGUgX3JlZnJlc2ggPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIF9jZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2h0bWwnKVswXSxcclxuICAgICAgYm9keSA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xyXG4gICAgZG9jLmxhbmcgPSBfc2Vzc2lvbi5sYW5ndWFnZTtcclxuICAgIGlmIChfc2Vzc2lvbi5pbnZlcnNlKSB7XHJcbiAgICAgIGRvY3VtZW50LmRpciA9IGRvYy5kaXIgPSBib2R5LmRpciA9IHRoaXMuZGlyID0gJ3J0bCc7XHJcbiAgICAgIGVuYWJsZVJ0bCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2Vzc2lvbi5yZWZyZXNoKCkuc3Vic2NyaWJlKHRoaXMuX2luaXRpYWxpemUuYmluZCh0aGlzKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luaXRpYWxpemUoKSB7XHJcbiAgICBpZiAoaXNNb2JpbGUoKSkge1xyXG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEhvbWVNb2JpbGVDb21wb25lbnQpO1xyXG4gICAgICB0aGlzLl92Yy5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2Nmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShIb21lQ29tcG9uZW50KTtcclxuICAgICAgdGhpcy5fdmMuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVmcmVzaC5waXBlKGRlYm91bmNlVGltZShSRVZJU0lUX1RBQl9SRUZSRVNIKSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLl9zZXNzaW9uLnJlZnJlc2goKS5zdWJzY3JpYmUoKSk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgKCkgPT4ge1xyXG4gICAgICBpZiAoIWRvY3VtZW50LmhpZGRlbiAmJiB0aGlzLl9tZXNzYWdpbmcuc3RhdGUgPT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5EaXNjb25uZWN0ZWQgJiYgdGhpcy5fc2Vzc2lvbi5vaylcclxuICAgICAgICB0aGlzLl9yZWZyZXNoLm5leHQoKTtcclxuICAgIH0pO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsICgpID0+IHRoaXMuX3JlZnJlc2gubmV4dCgpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT10aGVtZS1jb2xvcl0nKSBhcyBIVE1MTWV0YUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnRoZW1lQ2hhbmdlLlxyXG4gICAgICBwaXBlKHN0YXJ0V2l0aCh0aGlzLl9zZXNzaW9uLnRoZW1lKSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICBpZihtZXRhKSBtZXRhLmNvbnRlbnQgPSB0aGlzLl9zZXNzaW9uLmdldFByaW1lcnkoKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC52YWx1ZSA9IHQubmFtZTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKGlzTW9iaWxlKCkpXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlKTtcclxuICAgICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
89
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i1.SessionService }, { type: i2.HubService }, { type: i3.MatIconRegistry }, { type: i4.DomSanitizer }]; } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYXBwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzRCxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQUluRSxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUNsQyxNQUFNLFVBQVUsR0FBRyw0OENBQTQ4QyxFQUM3OUMsU0FBUyxHQUFHLG0vQ0FBbS9DLEVBQy8vQyxlQUFlLEdBQUcsdzNDQUF3M0MsRUFDMTRDLFFBQVEsR0FBQyxzNEVBQXM0RSxDQUFDO0FBS2w1RSxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTsyRkFBVixVQUFVLG9EQUZYLEVBQUU7MkZBRUQsVUFBVTtrQkFIdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs7QUFRRCxNQUFNLE9BQU8sU0FBUztJQUdwQixZQUNVLEdBQXFCLEVBQ3JCLElBQThCLEVBQzlCLFFBQXdCLEVBQ3hCLFVBQXNCLEVBQzlCLFlBQTZCLEVBQzdCLFNBQXVCO1FBTGYsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsU0FBSSxHQUFK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Q0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWixJQUFHLElBQUk7Z0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJO2dCQUNGLFFBQVEsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUM5QztZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEI7SUFDTCxDQUFDOztzR0F6RFUsU0FBUzswRkFBVCxTQUFTLDhDQUZWLEVBQUU7MkZBRUQsU0FBUztrQkFKckIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblN0YXRlIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZW5hYmxlUnRsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgSG9tZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSG9tZU1vYmlsZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLm1vYmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5jb25zdCBSRVZJU0lUX1RBQl9SRUZSRVNIID0gMTAwMDA7XHJcbmNvbnN0IEVYQ0VMX0lDT04gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA2NCA2NFwiPjxwYXRoIGQ9XCJNMzgsOEgxOS4zMzM1QTIuMzMzNzMsMi4zMzM3MywwLDAsMCwxNywxMC4zMzM1VjIwSDM4WlwiIGZpbGw9XCIjMjFhMzY2XCIvPjxwYXRoIGQ9XCJNNTYuNjY2NSw4SDM4VjIwSDU5VjEwLjMzMzVBMi4zMzM3MywyLjMzMzczLDAsMCwwLDU2LjY2NjUsOFpcIiBmaWxsPVwiIzMzYzQ4MVwiLz48cmVjdCB4PVwiMzhcIiB5PVwiMzJcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwiIzEwN2M0MVwiLz48cGF0aCBkPVwiTTM4LDQ0VjMySDE3VjUzLjY2NjVBMi4zMzM3MywyLjMzMzczLDAsMCwwLDE5LjMzMzUsNTZoMzcuMzMzQTIuMzMzNzMsMi4zMzM3MywwLDAsMCw1OSw1My42NjY1VjQ0WlwiIGZpbGw9XCIjMTg1YzM3XCIvPjxyZWN0IHg9XCIxN1wiIHk9XCIyMFwiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCIjMTA3YzQxXCIvPjxyZWN0IHg9XCIzOFwiIHk9XCIyMFwiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCIjMjFhMzY2XCIvPjxwYXRoIGQ9XCJNMzMsMjAuMzMwMDhWNDYuNjY5OTJhMS43MzQ0NCwxLjczNDQ0LDAsMCwxLS4wNC4zOTk5QTIuMzEzNzgsMi4zMTM3OCwwLDAsMSwzMC42Njk5Miw0OUgxN1YxOEgzMC42Njk5MkEyLjMyNiwyLjMyNiwwLDAsMSwzMywyMC4zMzAwOFpcIiBvcGFjaXR5PVwiMC4yXCIvPjxwYXRoIGQ9XCJNMzQsMjAuMzMwMDhWNDQuNjY5OTJBMy4zNjE3MSwzLjM2MTcxLDAsMCwxLDMwLjY2OTkyLDQ4SDE3VjE3SDMwLjY2OTkyQTMuMzQxNzcsMy4zNDE3NywwLDAsMSwzNCwyMC4zMzAwOFpcIiBvcGFjaXR5PVwiMC4xXCIvPjxwYXRoIGQ9XCJNMzMsMjAuMzMwMDhWNDQuNjY5OTJBMi4zMjYsMi4zMjYsMCwwLDEsMzAuNjY5OTIsNDdIMTdWMThIMzAuNjY5OTJBMi4zMjYsMi4zMjYsMCwwLDEsMzMsMjAuMzMwMDhaXCIgb3BhY2l0eT1cIjAuMlwiLz48cGF0aCBkPVwiTTMyLDIwLjMzMDA4VjQ0LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDI5LjY2OTkyLDQ3SDE3VjE4SDI5LjY2OTkyQTIuMzI2LDIuMzI2LDAsMCwxLDMyLDIwLjMzMDA4WlwiIG9wYWNpdHk9XCIwLjFcIi8+PHJlY3QgeD1cIjRcIiB5PVwiMTguMDAwMDJcIiB3aWR0aD1cIjI3Ljk5OTk2XCIgaGVpZ2h0PVwiMjcuOTk5OTZcIiByeD1cIjIuMzMzMzNcIiBmaWxsPVwiIzEwN2M0MVwiLz48cGF0aCBkPVwiTTExLjIyNTYsMzkuNTgzNWw0LjkwNzU5LTcuNjA0NjUtNC40OTUxLTcuNTYyMzVoMy42MTcyNGwyLjQ1Mzc5LDQuODMzNTZxLjMzODM5LjY4NzYzLjQ2NTM4LDEuMDI1OTRoLjAzMTczcS4yNDMxOC0uNTQ5ODQuNTA3NjgtMS4wNjgyNWwyLjYyMy00Ljc5MTI1SDI0LjY1OGwtNC42MTE0NSw3LjUyLDQuNzI3NzksNy42NDdIMjEuMjQxNzRMMTguNDA3MTgsMzQuMjc0YTQuNDMyNTUsNC40MzI1NSwwLDAsMS0uMzM4NDUtLjcwODY0aC0uMDQyMzFhMy4zNDUsMy4zNDUsMCwwLDEtLjMyNzg4LjY4NzQ5TDE0Ljc3OTM3LDM5LjU4MzVaXCIgZmlsbD1cIiNmZmZcIi8+PC9zdmc+JyxcclxuICBXT1JEX0lDT04gPSAnPHN2ZyB2aWV3Qm94PVwiMCAwIDU2MCA0MDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PGcgZmlsbC1ydWxlPVwibm9uemVyb1wiPjxwYXRoIGQ9XCJtMzgwLjgyOSAxMDMuNzUzaC0xNDYuNjU5Yy01LjAyOCAwLTkuMTY1IDQuMTM3LTkuMTY1IDkuMTY1djM4Ljk1OWw4Mi40OTggMjQuMDYyIDgyLjQ5Ny0yNC4wNjJ2LTM4Ljk1OWMwLTUuMDI4LTQuMTM3LTkuMTY1LTkuMTY0LTkuMTY1elwiIGZpbGw9XCIjNDFhNWVlXCIvPjxwYXRoIGQ9XCJtMzg5Ljk5MyAxNTEuODc3aC0xNjQuOTk0djQ4LjEyM2w4Mi40OTcgMjQuMDYyIDgyLjQ5Ny0yNC4wNjJ6XCIgZmlsbD1cIiMyYjdjZDNcIi8+PHBhdGggZD1cIm0zODkuOTkzIDIwMGgtMTY0Ljk5NHY0OC4xMjRsODIuNDk3IDI0LjA2MSA4Mi40OTctMjQuMDYxelwiIGZpbGw9XCIjMTg1YWJkXCIvPjxwYXRoIGQ9XCJtMzg5Ljk5MyAyNDguMTI0aC0xNjQuOTk0djM4Ljk1OWMwIDUuMDI3IDQuMTM2IDkuMTY0IDkuMTYzIDkuMTY0aDE0Ni42NmM1LjAyNyAwIDkuMTY0LTQuMTM3IDkuMTY0LTkuMTY0elwiIGZpbGw9XCIjMTAzZjkxXCIvPjxwYXRoIGQ9XCJtMjg0LjU4MiAxMzguMTI3aC01OS41ODN2MTMwLjYyMWg1OS41ODNjNS4wMjItLjAxNSA5LjE0OS00LjE0MyA5LjE2NC05LjE2NHYtMTEyLjI4NmMtLjAxNS01LjAyMS00LjE0Mi05LjE0OS05LjE2NC05LjE2NHpcIiBmaWxsLW9wYWNpdHk9XCIuMDk4MDM5XCIvPjxwYXRoIGQ9XCJtMjc3LjcwOCAxNDUuMDAyaC01Mi43MDl2MTMwLjYyMWg1Mi43MDljNS4wMjEtLjAxNSA5LjE0OS00LjE0MyA5LjE2My05LjE2NXYtMTEyLjI4NWMtLjAxNC01LjAyMS00LjE0Mi05LjE0OS05LjE2My05LjE2NHptMCAwaC01Mi43MDl2MTE2Ljg3MWg1Mi43MDljNS4wMjEtLjAxNSA5LjE0OS00LjE0MyA5LjE2My05LjE2NHYtOTguNTM2Yy0uMDE0LTUuMDIxLTQuMTQyLTkuMTQ5LTkuMTYzLTkuMTY0em0tNi44NzUgMGgtNDUuODM0djExNi44NzFoNDUuODM0YzUuMDIxLS4wMTUgOS4xNDktNC4xNDMgOS4xNjMtOS4xNjR2LTk4LjUzNmMtLjAxNC01LjAyMS00LjE0Mi05LjE0OS05LjE2My05LjE2NHpcIiBmaWxsLW9wYWNpdHk9XCIuMlwiLz48cGF0aCBkPVwibTE3OS4xNjQgMTQ1LjAwMmg5MS42NjFjNS4wMjggMCA5LjE2NSA0LjEzNiA5LjE2NSA5LjE2NHY5MS42NjJjMCA1LjAyNy00LjEzNyA5LjE2My05LjE2NSA5LjE2M2gtOTEuNjYxYy01LjAyNyAwLTkuMTY0LTQuMTM2LTkuMTY0LTkuMTYzdi05MS42NjJjMC01LjAyOCA0LjEzNy05LjE2NCA5LjE2NC05LjE2NHpcIiBmaWxsPVwiIzE4NWFiZFwiLz48cGF0aCBkPVwibTI1Mi4xNTQgMjM0LjM3NGgtMTIuMzc1bC0xNC40MzctNDcuNDM2LTE1LjEyNSA0Ny40MzZoLTEyLjM3NGwtMTMuNzUtNjguNzQ4aDEyLjM3NWw5LjYyNCA0OC4xMjMgMTQuNDM4LTQ2Ljc0OGgxMC4zMTJsMTMuNzUgNDYuNzQ4IDkuNjI0LTQ4LjEyM2gxMS42ODd6XCIgZmlsbD1cIiNmZmZcIi8+PC9nPjxwYXRoIGQ9XCJtMTcwIDkwLjAwNGgyMTkuOTkzdjIxOS45OTNoLTIxOS45OTN6XCIgZmlsbD1cIm5vbmVcIi8+PC9zdmc+JyxcclxuICBQT1dFUlBPSU5UX0lDT04gPSAnPHN2ZyB2aWV3Qm94PVwiLTAuMTI5NzkzNzI2OTgwNzc3ODUgMCAzMi4xNTIzODkzMDExNzY3NTQgMzJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNTAwXCIgaGVpZ2h0PVwiMjQ3OFwiPjxwYXRoIGQ9XCJNMTggMkExNC4wNDEgMTQuMDQxIDAgMCAwIDQgMTZsMTcuNzM3IDMuNzM3elwiIGZpbGw9XCIjZWQ2YzQ3XCIvPjxwYXRoIGQ9XCJNMTggMmExNC4wNDEgMTQuMDQxIDAgMCAxIDE0IDE0bC03IDQuNzU4TDE4IDE2elwiIGZpbGw9XCIjZmY4ZjZiXCIvPjxwYXRoIGQ9XCJNMTggMzBhMTQuMDQxIDE0LjA0MSAwIDAgMCAxNC0xNEg0YTE0LjA0MSAxNC4wNDEgMCAwIDAgMTQgMTR6XCIgZmlsbD1cIiNkMzUyMzBcIi8+PHBhdGggZD1cIk0xNi42NjYgN2gtOS4zNmExMy45MTQgMTMuOTE0IDAgMCAwIC45MyAxOWg4LjQzQTEuMzM3IDEuMzM3IDAgMCAwIDE4IDI0LjY2N1Y4LjMzM0ExLjMzNyAxLjMzNyAwIDAgMCAxNi42NjYgN3pcIiBvcGFjaXR5PVwiLjFcIi8+PHBhdGggZD1cIk0xNS42NjYgOEg2LjU0YTEzLjkwNiAxMy45MDYgMCAwIDAgMi44NDUgMTloNi4yODJBMS4zMzcgMS4zMzcgMCAwIDAgMTcgMjUuNjY3VjkuMzMzQTEuMzM3IDEuMzM3IDAgMCAwIDE1LjY2NiA4elwiIG9wYWNpdHk9XCIuMlwiLz48cGF0aCBkPVwiTTE1LjY2NiA4SDYuNTRhMTMuODkgMTMuODkgMCAwIDAgLjc2NiAxN2g4LjM2MUExLjMzNyAxLjMzNyAwIDAgMCAxNyAyMy42NjdWOS4zMzNBMS4zMzcgMS4zMzcgMCAwIDAgMTUuNjY2IDh6XCIgb3BhY2l0eT1cIi4yXCIvPjxwYXRoIGQ9XCJNMTQuNjY2IDhINi41NGExMy44OSAxMy44OSAwIDAgMCAuNzY2IDE3aDcuMzYxQTEuMzM3IDEuMzM3IDAgMCAwIDE2IDIzLjY2N1Y5LjMzM0ExLjMzNyAxLjMzNyAwIDAgMCAxNC42NjYgOHpcIiBvcGFjaXR5PVwiLjJcIi8+PHBhdGggZD1cIk0xLjMzMyA4aDEzLjMzNEExLjMzMyAxLjMzMyAwIDAgMSAxNiA5LjMzM3YxMy4zMzRBMS4zMzMgMS4zMzMgMCAwIDEgMTQuNjY3IDI0SDEuMzMzQTEuMzMzIDEuMzMzIDAgMCAxIDAgMjIuNjY3VjkuMzMzQTEuMzMzIDEuMzMzIDAgMCAxIDEuMzMzIDh6XCIgZmlsbD1cIiNjNDNlMWNcIi8+PHBhdGggZD1cIk03Ljk5NyAxMWE0LjE2OCA0LjE2OCAwIDAgMSAyLjc1NS44MDUgMi44NzggMi44NzggMCAwIDEgLjk1NiAyLjMzMSAyLjcyNiAyLjcyNiAwIDAgMS0uNDczIDEuNTg4IDMuMTY0IDMuMTY0IDAgMCAxLTEuMzQ0IDEuMTg2IDQuNTcgNC41NyAwIDAgMS0yLjAyLjQyNGgtMS45MVYyMUg0VjExek01Ljk2IDE1LjY4M2gxLjY4N2EyLjE5NCAyLjE5NCAwIDAgMCAxLjQ5Mi0uNDQ0IDEuMTA3IDEuMTA3IDAgMCAwIC41MDQtMS4wMjZxMC0xLjY1OS0xLjkzMy0xLjY1OUg1Ljk2elwiIGZpbGw9XCIjZjlmN2Y3XCIvPjxwYXRoIGQ9XCJNMCAwaDMydjMySDB6XCIgZmlsbD1cIm5vbmVcIi8+PC9zdmc+JyxcclxuICBQREZfSUNPTj0nPHN2ZyBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgMzM0LjM3MSAzODAuNTYzXCIgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMTQgMTZcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiPjxwb2x5Z29uIHBvaW50cz1cIjUxLjc5MSAzNTYuNjUgNTEuNzkxIDIzLjk5IDIwNC41IDIzLjk5IDI4Mi42NSAxMDIuMDcgMjgyLjY1IDM1Ni42NVwiIGZpbGw9XCIjZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCIvPjxwYXRoIGQ9XCJtMjAxLjE5IDMxLjk5IDczLjQ2IDczLjM5M3YyNDMuMjZoLTIxNC44NnYtMzE2LjY2aDE0MS40bTYuNjIzLTE2aC0xNjQuMDJ2MzQ4LjY2aDI0Ni44NXYtMjY1Ljl6XCIgc3Ryb2tlLXdpZHRoPVwiMjEuNzkxXCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiPjxwb2x5Z29uIHBvaW50cz1cIjI4Mi42NSAzNTYuNjUgNTEuNzkxIDM1Ni42NSA1MS43OTEgMjMuOTkgMjA0LjUgMjMuOTkgMjA2LjMxIDI1LjggMjA2LjMxIDEwMC4zMyAyODAuOSAxMDAuMzMgMjgyLjY1IDEwMi4wN1wiIGZpbGw9XCIjZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCIvPjxwYXRoIGQ9XCJtMTk4LjMxIDMxLjk5djc2LjMzN2g3Ni4zMzd2MjQwLjMyaC0yMTQuODZ2LTMxNi42NmgxMzguNTJtOS41LTE2aC0xNjQuMDJ2MzQ4LjY2aDI0Ni44NXYtMjY1LjlsLTYuNDMtNi40MjRoLTY5LjkwN3YtNjkuODQyelwiIHN0cm9rZS13aWR0aD1cIjIxLjc5MVwiLz48L2c+PGcgdHJhbnNmb3JtPVwibWF0cml4KC4wNDU4OSAwIDAgLjA0NTg5IC0uNjY4NzcgLS43MzM3OSlcIiBzdHJva2Utd2lkdGg9XCIyMS43OTFcIj48cG9seWdvbiBwb2ludHM9XCIyNTguMzEgODcuNzUgMjE5LjY0IDg3Ljc1IDIxOS42NCA0OC42NjcgMjU4LjMxIDg2LjM4XCIvPlx0XHQ8cGF0aCBkPVwibTIyNy42NCA2Ny42NDYgMTIuNDEgMTIuMTA0aC0xMi40MXYtMTIuMTA0bS01LjAwMi0yNy4yMjloLTEwLjk5OHY1NS4zMzNoNTQuNjY2di0xMi43NDJ6XCIvPjwvZz48ZyB0cmFuc2Zvcm09XCJtYXRyaXgoLjA0NTg5IDAgMCAuMDQ1ODkgLS42Njg3NyAtLjczMzc5KVwiIGZpbGw9XCIjZWQxYzI0XCIgc3Ryb2tlLXdpZHRoPVwiMjEyLjY1XCI+PHBvbHlnb24gcG9pbnRzPVwiMzExLjg5IDI4NC40OSAyMi41NDQgMjg0LjQ5IDIyLjU0NCAxNjcuNjggMzcuMjkxIDE1Mi45NCAzNy4yOTEgMTcxLjQ5IDI5Ny4xNSAxNzEuNDkgMjk3LjE1IDE1Mi45NCAzMTEuODkgMTY3LjY4XCIvPjxwYXRoIGQ9XCJtMzAzLjY1IDE2OC42MyAxLjc0NyAxLjc0N3YxMDcuNjJoLTI3Ni4zNXYtMTA3LjYybDEuNzQ3LTEuNzQ3djkuMzYyaDI3Mi44NXYtOS4zNjJtLTEyLjk5OS0zMS4zODV2MjcuNzQ3aC0yNDYuODZ2LTI3Ljc0N2wtMjcuNzQ3IDI3Ljc0N3YxMjZoMzAyLjM1di0xMjZ6XCIvPjwvZz48cmVjdCB4PVwiMS43MjE5XCIgeT1cIjcuOTU0NFwiIHdpZHRoPVwiMTAuNjg0XCIgaGVpZ2h0PVwiNC4wMzA3XCIgZmlsbD1cIm5vbmVcIi8+PGcgdHJhbnNmb3JtPVwibWF0cml4KC4wNDU4OSAwIDAgLjA0NTg5IDEuNzIxOSAxMS43MzMpXCIgZmlsbD1cIiNmZmZcIiBzdHJva2Utd2lkdGg9XCIyMS43OTFcIiBhcmlhLWxhYmVsPVwiUERGXCI+PHBhdGggZD1cIm05LjIxNiAwdi04My4yaDMwLjQ2NHE2Ljc4NCAwIDEyLjkyOCAxLjQwOCA2LjE0NCAxLjI4IDEwLjc1MiA0LjYwOCA0LjYwOCAzLjIgNy4yOTYgOC41NzYgMi44MTYgNS4yNDggMi44MTYgMTMuMDU2IDAgNy42OC0yLjgxNiAxMy4xODQtMi42ODggNS41MDQtNy4yOTYgOS4wODgtNC42MDggMy40NTYtMTAuNjI0IDUuMjQ4LTYuMDE2IDEuNjY0LTEyLjU0NCAxLjY2NGgtOC45NnYyNi4zNjh6bTIyLjAxNi00My43NzZoNy45MzZxNi41MjggMCA5LjYtMy4wNzIgMy4yLTMuMDcyIDMuMi04LjcwNHQtMy40NTYtNy45MzYtOS44NTYtMi4zMDRoLTcuNDI0elwiLz48cGF0aCBkPVwibTg3LjA0IDB2LTgzLjJoMjQuNTc2cTkuNDcyIDAgMTcuMjggMi4zMDQgNy45MzYgMi4zMDQgMTMuNTY4IDcuMjk2dDguNzA0IDEyLjhxMy4yIDcuODA4IDMuMiAxOC44MTZ0LTMuMDcyIDE4Ljk0NC04LjcwNCAxMy4wNTZxLTUuNTA0IDUuMTItMTMuMTg0IDcuNTUyLTcuNTUyIDIuNDMyLTE2LjUxMiAyLjQzMnptMjIuMDE2LTE3LjY2NGgxLjI4cTQuNDggMCA4LjQ0OC0xLjAyNCAzLjk2OC0xLjE1MiA2Ljc4NC0zLjg0IDIuOTQ0LTIuNjg4IDQuNjA4LTcuNDI0dDEuNjY0LTEyLjAzMi0xLjY2NC0xMS45MDQtNC42MDgtNy4xNjhxLTIuODE2LTIuNTYtNi43ODQtMy40NTYtMy45NjgtMS4wMjQtOC40NDgtMS4wMjRoLTEuMjh6XCIvPjxwYXRoIGQ9XCJtMTY5LjIyIDB2LTgzLjJoNTQuMjcydjE4LjQzMmgtMzIuMjU2djE1Ljg3MmgyNy42NDh2MTguNDMyaC0yNy42NDh2MzAuNDY0elwiLz48L2c+PC9zdmc+JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQnJva2VuUGFnZSB7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jJyxcclxuICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpekRvY0FwcCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGlyOiBEaXJlY3Rpb24gPSAnbHRyJztcclxuICBwcml2YXRlIF9yZWZyZXNoID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ZjOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBfY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICAgIGNvbnN0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF0sXHJcbiAgICAgIGJvZHkgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTtcclxuICAgIGRvYy5sYW5nID0gX3Nlc3Npb24ubGFuZ3VhZ2U7XHJcbiAgICBpZiAoX3Nlc3Npb24uaW52ZXJzZSkge1xyXG4gICAgICBkb2N1bWVudC5kaXIgPSBkb2MuZGlyID0gYm9keS5kaXIgPSB0aGlzLmRpciA9ICdydGwnO1xyXG4gICAgICBlbmFibGVSdGwoKTtcclxuICAgIH1cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZXhjZWwnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRVhDRUxfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCd3b3JkJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFdPUkRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwb3dlcnBvaW50Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBPV0VSUE9JTlRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwZGYnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUERGX0lDT04pKTtcclxuICAgIHRoaXMuX3Nlc3Npb24ucmVmcmVzaCgpLnN1YnNjcmliZSh0aGlzLl9pbml0aWFsaXplLmJpbmQodGhpcykpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbml0aWFsaXplKCkge1xyXG4gICAgaWYgKGlzTW9iaWxlKCkpIHtcclxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2Nmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShIb21lTW9iaWxlQ29tcG9uZW50KTtcclxuICAgICAgdGhpcy5fdmMuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSG9tZUNvbXBvbmVudCk7XHJcbiAgICAgIHRoaXMuX3ZjLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3JlZnJlc2gucGlwZShkZWJvdW5jZVRpbWUoUkVWSVNJVF9UQUJfUkVGUkVTSCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gdGhpcy5fc2Vzc2lvbi5yZWZyZXNoKCkuc3Vic2NyaWJlKCkpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsICgpID0+IHtcclxuICAgICAgaWYgKCFkb2N1bWVudC5oaWRkZW4gJiYgdGhpcy5fbWVzc2FnaW5nLnN0YXRlID09PSBIdWJDb25uZWN0aW9uU3RhdGUuRGlzY29ubmVjdGVkICYmIHRoaXMuX3Nlc3Npb24ub2spXHJcbiAgICAgICAgdGhpcy5fcmVmcmVzaC5uZXh0KCk7XHJcbiAgICB9KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCAoKSA9PiB0aGlzLl9yZWZyZXNoLm5leHQoKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1ldGEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9dGhlbWUtY29sb3JdJykgYXMgSFRNTE1ldGFFbGVtZW50O1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5cclxuICAgICAgcGlwZShzdGFydFdpdGgodGhpcy5fc2Vzc2lvbi50aGVtZSkpLlxyXG4gICAgICBzdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgaWYobWV0YSkgbWV0YS5jb250ZW50ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudmFsdWUgPSB0Lm5hbWU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGlmIChpc01vYmlsZSgpKVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZXF1ZXN0RnVsbHNjcmVlbigpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -154,7 +154,6 @@ export class ComposeFormComponent {
154
154
  this.working = true;
155
155
  this.workingChange.emit(true);
156
156
  let exists;
157
- const fileMap = {};
158
157
  files.forEach(f => {
159
158
  if (!exists)
160
159
  exists = this.model.attachments.some(a => a.fileName === f.name && !a.deleted && !a.failed);
@@ -162,14 +161,13 @@ export class ComposeFormComponent {
162
161
  if (retry > -1)
163
162
  this.model.attachments.splice(retry, 1);
164
163
  const model = this._constructAttachment(f);
165
- fileMap[f.name] = model;
166
164
  this.model.attachments.push(model);
167
165
  });
168
166
  return this._mailbox.upload(this.model.id, this.model.formId, this.model.version, files).
169
167
  pipe(tap((r) => {
170
168
  files.length === 1 ? this._sb.toast(!exists ? 'UploadOk' : 'UploadVersionOk', files[0].name) :
171
169
  this._sb.toast('UploadMany', files.length);
172
- r.forEach(i => Object.assign(fileMap[i.fileName], i, { progress: null, }, i));
170
+ r.forEach(i => Object.assign(this.model.attachments.find(a => a.fileName == i.fileName && !a.id), i, { progress: null, }, i));
173
171
  this.working = false;
174
172
  this.workingChange.emit(false);
175
173
  }, e => {
@@ -370,7 +368,7 @@ export class ComposeFormComponent {
370
368
  case 409: // version change
371
369
  {
372
370
  const obj = response.error /* serialized model */;
373
- this._assign(obj);
371
+ obj && this._assign(obj);
374
372
  this._reset();
375
373
  this._sb.error('VersionErr', this.model.number);
376
374
  break;
@@ -431,4 +429,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
431
429
  type: ViewChild,
432
430
  args: ['component', { read: ViewContainerRef, static: true }]
433
431
  }] } });
434
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQTRDLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFGLE9BQU8sRUFBNkIsY0FBYyxFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBTXJHLE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU1yRCxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhFLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFD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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztpSEF4WVUsb0JBQW9CO3FHQUFwQixvQkFBb0IscWZBbUJwQixvQkFBb0IsbUlBQ0MsZ0JBQWdCLGdFQ3REbEQsb3VCQVlBOzJGRHNCYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsYUFBYSxRQUVqQjt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3FCQUN2QztvYkFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHUCxPQUFPO3NCQUROLEtBQUs7Z0JBRWEsYUFBYTtzQkFBL0IsTUFBTTtnQkFFUCxLQUFLO3NCQURKLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTTtnQkFFUCxLQUFLO3NCQURKLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFJK0IsWUFBWTtzQkFBaEQsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNnQixXQUFXO3NCQUE3RCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDaUIsVUFBVTtzQkFBM0UsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGlzQm9vbGVhbiwgaXNQcm9taXNlLCBxdWVyeVBhcmFtcyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgUmVjaXBpZW50TW9kZWwsIEZvcm0sIEFjdGlvbiwgQXR0YWNobWVudCwgQXR0YWNobWVudE1vZGUgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIFZpZXdNb2RlIH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlLCBJdGVtRXh0cmEsIERPQ1VNRU5UX01PREVMLCBBdHRhY2htZW50RXh0cmEgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEZvcm1SZWYsIFNhdmVFdmVudEFyZ3MgfSBmcm9tICcuL2Zvcm0tcmVmJztcclxuaW1wb3J0IHsgQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhZy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9uRGlhbG9nLCBBY3Rpb25EaWFsb2dEYXRhIH0gZnJvbSAnLi9hY3Rpb24vYWN0aW9uLmRpYWxvZyc7XHJcblxyXG4vKiogc2F2ZSBkcmFmdCBtcyAqL1xyXG5leHBvcnQgY29uc3QgQVVUT19TQVZFX0RFTEFZID0gNTAwMDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2Zvcm0tY29udGFpbmVyIGJpemRvYy1jb21wb3NlJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBvc2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGllbnRNb2RlbDxhbnk+PigpO1xyXG4gIGZvcm06IEZvcm07XHJcbiAgQElucHV0KClcclxuICB3b3JraW5nID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHdvcmtpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KClcclxuICBkaXJ0eSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKVxyXG4gIHZhbGlkID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIG1vZGU6IFZpZXdNb2RlO1xyXG4gIEBJbnB1dCgpIGNvbnRhY3RzID0gdHJ1ZTtcclxuICBhY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xyXG4gIHBhZ2U6IHN0cmluZyB8IG51bWJlcjtcclxuICBoZWxwOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIF9maWxlRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKEF0dGFjaG1lbnRzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdHRhY2htZW50czogQXR0YWNobWVudHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9mb3JtUmVmOiBGb3JtUmVmO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVySW1wbCxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX3NuYWNrYmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgX2NmOiBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnaW5nOiBIdWJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9maWxlQ2hhbmdlTGlzdGVuZXIuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuY2FsbGJhY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZVxyXG4gICAgICAgICYmIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZShlLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcudXBkYXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBpZiAoZS5tb2RlbC5pZCA9PT0gdGhpcy5tb2RlbC5pZCkge1xyXG4gICAgICAgIChlLnVzZXJJZCAhPT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpICYmXHJcbiAgICAgICAgICB0aGlzLl9hY2NvdW50cy5nZXQoZS51c2VySWQpLnN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4odGhpcy5fdHJhbnNsYXRlLmdldCgnTWFpbFZlcnNpb25VcGRhdGUnLCB0aGlzLm1vZGVsLm51bWJlciwgdS5uYW1lKSxcclxuICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPSycpLCB7XHJcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbixcclxuICAgICAgICAgICAgfSkub25BY3Rpb24oKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbihlLm1vZGVsKTtcclxuICAgICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksIGZpbHRlcihlID0+IGUuaWQgPT09IHRoaXMubW9kZWwuaWQpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICF0aGlzLndvcmtpbmcgJiZcclxuICAgICAgICB0aGlzLl9hc3NpZ24oZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Zvcm1SZWYgJiYgdGhpcy5fZm9ybVJlZi5fZGVzdHJveSgpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvcm1zLmZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMubW9kZWwuZm9ybUlkKTtcclxuICAgIHRoaXMuaGVscCA9IHRoaXMuZm9ybS5ndWlkZTtcclxuICAgIGlmICghdGhpcy5mb3JtLnRlbXBsYXRlKVxyXG4gICAgICB0aHJvdyAoYEZvcm0gJyR7dGhpcy5mb3JtLm5hbWV9JyBtb2RlbCBtaXNzaW5nICdbVGVtcGxhdGUoKV0nIGF0dHJpYnV0ZS5gKTtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jZi5yZXNvbHZlKHRoaXMuZm9ybS50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmID0gbmV3IEZvcm1SZWYoKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX25hdmlnYXRpbmcuXHJcbiAgICAgIHN1YnNjcmliZShwID0+IHRoaXMucGFnZSA9IHApO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc3RhdGVDaGFuZ2UucGlwZShzdGFydFdpdGgoKSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLmhlbHAgPSB0aGlzLl9mb3JtUmVmLmhlbHApO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRm9ybVJlZiwgdXNlVmFsdWU6IHRoaXMuX2Zvcm1SZWZcclxuICAgICAgfSwge1xyXG4gICAgICAgIHByb3ZpZGU6IERPQ1VNRU5UX01PREVMLCB1c2VWYWx1ZTogdGhpcy5tb2RlbFxyXG4gICAgICB9XHJcbiAgICBdLCB0aGlzLl9pbmplY3RvclxyXG4gICAgKTtcclxuICAgIHRoaXMuX2NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5LCAwLCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5faW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgRm9ybUNvbXBvbmVudDxhbnk+O1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbW9kZSA9IHRoaXMuX2luc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5mb3JtLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgZGlydHksIHZhbGlkIH0gPSB0aGlzLl9pbnN0YW5jZS5mb3JtO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZGlydHk7XHJcbiAgICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdChkaXJ0eSk7XHJcbiAgICAgIHRoaXMudmFsaWQgPSB2YWxpZDtcclxuICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHZhbGlkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2RlbC5kcmFmdCAmJiB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKEFVVE9fU0FWRV9ERUxBWSkpLnN1YnNjcmliZSgoKSA9PiAhdGhpcy53b3JraW5nICYmIHRoaXMuZGlydHkgJiZcclxuICAgICAgICB0aGlzLnNhdmUoZmFsc2UpLnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpbGVDaGFuZ2VMaXN0ZW5lcihldjogRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGV2LnNyY0VsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudCxcclxuICAgICAgYXJyOiBGaWxlW10gPSBbXTtcclxuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhcnIucHVzaChmaWxlc1tpXSk7XHJcbiAgICAgIHRoaXMudXBsb2FkKGFycikuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzLm5nT25DaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hcHBseUNoYW5nZXMoKSB7XHJcbiAgICBPYmplY3QuZGVlcEFzc2lnbih0aGlzLm1vZGVsLm1vZGVsLCB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlKTtcclxuICB9XHJcbiAgbmF2aWdhdGUocGFnZTogYW55KSB7XHJcbiAgICBjb25zdCBwYWdlbiA9IHBhcnNlSW50KHBhZ2UpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5uZXh0KGlzTmFOKHBhZ2VuKSA/IHBhZ2UgOiBwYWdlbik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEFjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zYXZlKGZlZWRiYWNrOiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBkcmFmdCB9ID0gdGhpcy5tb2RlbDtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnNhdmUoaWQsIGZvcm1JZCwgdmVyc2lvbiwgbW9kZWwpLnBpcGUoXHJcbiAgICAgIHRhcChtID0+IHtcclxuICAgICAgICB0aGlzLl9hc3NpZ24obSk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICBmZWVkYmFjayAmJlxyXG4gICAgICAgICAgdGhpcy5fc2IudG9hc3QoZHJhZnQgPyAnRHJhZnRTYXZlZCcgOiAnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9LCBlID0+IHtcclxuICAgICAgICBmZWVkYmFjayAmJlxyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NhdmVFcnInKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pLCBtYXAoKCkgPT4gdHJ1ZSkpO1xyXG4gIH1cclxuICB1cGxvYWQoZmlsZXM6IEZpbGVbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBsZXQgZXhpc3RzOiBib29sZWFuO1xyXG4gICAgY29uc3QgZmlsZU1hcCA9IHt9O1xyXG4gICAgZmlsZXMuZm9yRWFjaChmID0+IHtcclxuICAgICAgaWYgKCFleGlzdHMpXHJcbiAgICAgICAgZXhpc3RzID0gdGhpcy5tb2RlbC5hdHRhY2htZW50cy5zb21lKGEgPT4gYS5maWxlTmFtZSA9PT0gZi5uYW1lICYmICFhLmRlbGV0ZWQgJiYgIShhIGFzIEF0dGFjaG1lbnRFeHRyYSkuZmFpbGVkKTtcclxuICAgICAgY29uc3QgcmV0cnkgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLmZpbmRJbmRleChhID0+IGEuZmlsZU5hbWUgPT09IGYubmFtZSAmJiAoYSBhcyBBdHRhY2htZW50RXh0cmEpLmZhaWxlZCk7XHJcbiAgICAgIGlmIChyZXRyeSA+IC0xKVxyXG4gICAgICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMuc3BsaWNlKHJldHJ5LCAxKTtcclxuICAgICAgY29uc3QgbW9kZWwgPSB0aGlzLl9jb25zdHJ1Y3RBdHRhY2htZW50KGYpO1xyXG4gICAgICBmaWxlTWFwW2YubmFtZV0gPSBtb2RlbDtcclxuICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5wdXNoKG1vZGVsKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3gudXBsb2FkKHRoaXMubW9kZWwuaWQsIHRoaXMubW9kZWwuZm9ybUlkLCB0aGlzLm1vZGVsLnZlcnNpb24sIGZpbGVzKS5cclxuICAgICAgcGlwZSh0YXAoKHI6IEF0dGFjaG1lbnRbXSkgPT4ge1xyXG4gICAgICAgIGZpbGVzLmxlbmd0aCA9PT0gMSA/IHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgIWV4aXN0cyA/ICdVcGxvYWRPaycgOiAnVXBsb2FkVmVyc2lvbk9rJywgZmlsZXNbMF0ubmFtZSkgOlxyXG4gICAgICAgICAgdGhpcy5fc2IudG9hc3QoJ1VwbG9hZE1hbnknLCBmaWxlcy5sZW5ndGgpO1xyXG4gICAgICAgIHIuZm9yRWFjaChpID0+IFxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihmaWxlTWFwW2kuZmlsZU5hbWVdLCBpLCB7cHJvZ3Jlc3M6IG51bGwsfSwgaSlcclxuICAgICAgICApOyBcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnVXBsb2FkRmFpbGVkJywgZmlsZXNbMF0ubmFtZSk7XHJcblxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdVcGxvYWRGYWlsZWQnKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29uc3RydWN0QXR0YWNobWVudChmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLCB1dGMgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgbm93LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VySWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQsXHJcbiAgICAgIGJ5SWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUlkLFxyXG4gICAgICB0aW1lOiB1dGMudG9KU09OKCkgYXMgYW55LFxyXG4gICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICBjb250ZW50VHlwZTogZmlsZS50eXBlLFxyXG4gICAgICBtb2RlOiBBdHRhY2htZW50TW9kZS5QdWJsaWNcclxuICAgIH0gYXMgQXR0YWNobWVudDtcclxuICB9XHJcbiAgdGFnKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihUYWdzQ29tcG9uZW50LCAoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLCB7XHJcbiAgICAgIGRhdGE6IHRoaXMubW9kZWxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc2V0KCkge1xyXG4gICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICF0aGlzLl9pbnN0YW5jZS5mb3JtLnByaXN0aW5lICYmIHRoaXMuX2luc3RhbmNlLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMudmFsaWQgPSB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbGlkO1xyXG4gICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHRoaXMudmFsaWQpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuZGlydHkpO1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5tb2RlbC5hY3Rpb25zID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmlsdGVyKGEgPT4gdGhpcy5tb2RlbC5hY3Rpb25zLmluZGV4T2YoYS5uYW1lKSA+IC0xKS5cclxuICAgICAgc29ydCh0aGlzLl9zb3J0QWN0aW9ucykgOiBbXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc29ydEFjdGlvbnMoYTogQWN0aW9uLCBiOiBBY3Rpb24pIHtcclxuICAgIGlmIChhLmdyb3VwICYmIGIuZ3JvdXAgJiYgYS5ncm91cCAhPT0gYi5ncm91cClcclxuICAgICAgcmV0dXJuIGEuZ3JvdXAgPCBiLmdyb3VwID8gLTEgOiAxO1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBndWlkZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KG5hbWUpO1xyXG4gIH1cclxuICBhdHRhY2goKSB7XHJcbiAgICBjb25zdCBlbGVtID0gdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgZWxlbS5jbGljaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmZWVkYmFja1xyXG4gICAqL1xyXG4gIHNhdmUoZmVlZGJhY2sgPSB0cnVlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgIGNvbnN0IHNhdmVBcmdzID0geyBjYW5jZWw6IGZhbHNlIH0gYXMgU2F2ZUV2ZW50QXJncztcclxuICAgIHRoaXMuX2Zvcm1SZWYuX3NhdmluZy5uZXh0KHNhdmVBcmdzKTtcclxuICAgIGlmIChzYXZlQXJncy5jYW5jZWwpXHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2Uub25TYXZlKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2luc3RhbmNlLm9uU2F2ZSgpO1xyXG4gICAgICBpZiAoaXNCb29sZWFuKHJlc3VsdCkpIHtcclxuICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgZmVlZGJhY2sgJiYgdGhpcy5fc2IudG9hc3QoJ1ZhbGlkYXRlRXJyJyk7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpc1Byb21pc2UocmVzdWx0KSlcclxuICAgICAgICByZXR1cm4gZnJvbShyZXN1bHQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3NhdmUoZmVlZGJhY2spKSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICByZXR1cm4gKHJlc3VsdCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9zYXZlKGZlZWRiYWNrKSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3NhdmUoZmVlZGJhY2spO1xyXG4gIH1cclxuICBmbGFnKCkge1xyXG4gICAgY29uc3QgZXh0cmEgPSB0aGlzLm1vZGVsIGFzIEl0ZW1FeHRyYSwgeyBmbGFnIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgZXh0cmEud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5mbGFnKHRoaXMubW9kZWwuaWQsICFmbGFnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsLmZsYWcgPSAhZmxhZztcclxuICAgICAgZXh0cmEud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICBleHRyYS53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuX2FwcGx5Q2hhbmdlcygpO1xyXG4gICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgbnVtYmVyIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc3VibWl0KGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsKS5cclxuICAgICAgcGlwZSh0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTdWJtaXR0ZWQnLCBudW1iZXIpO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTdWJtaXRFcnInKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBiYWNrKCkge1xyXG4gICAgdGhpcy5fZm9ybVJlZi5uYXZpZ2F0ZSgpO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5hc2soJ0Rpc2NhcmRBc2snLCAnRGlzY2FyZCcsIHtcclxuICAgICAgICBjb2xvcjogJ3dhcm4nLCBvazogJ0Rpc2NhcmQnXHJcbiAgICAgIH0pLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgICAgaWYgKG9rKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuX21haWxib3guZGVsZXRlKHRoaXMubW9kZWwuaWQpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdOZXR3b3JrRXJyJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICBpdGVtOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgfSBhcyBBY3Rpb25EaWFsb2dEYXRhLFxyXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXHJcbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICAgIGlmIChhcmdzKSB7XHJcbiAgICAgICAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5UGFyYW1zKGFyZ3MpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgbnVtYmVyLCBtb2RlbCwgZm9ybUlkIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX21haWxib3guc2VuZChpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgYWN0aW9uLCBwYXJhbXMpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTZW50JywgbnVtYmVyLCB0aGlzLl9nZXRBY3Rpb25BZGplY3RpdmUoYWN0aW9uKSk7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTZW5kRXJyJyk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb3B5KCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jb3B5KHRoaXMubW9kZWwuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQ29waWVkJywgaS5udW1iZXIgfHwgdGhpcy5mb3JtLnRpdGxlKTtcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaS5pZC5lbmNvZGVJZCgpXSwge1xyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW06IGkgfVxyXG4gICAgICB9KTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBpdGVtXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgcmVzb3VyY2VcclxuICAgKiBAcGFyYW0gYXJnc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZUVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgICBjYXNlIDQwMTpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA5OiAvLyB2ZXJzaW9uIGNoYW5nZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnbihvYmopO1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVmVyc2lvbkVycicsIHRoaXMubW9kZWwubnVtYmVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSA0MDY6IC8vIHZhbGlkYXRpb24gZXhjZXB0aW9uXHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvclN0cmluZyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IobWVzc2FnZSwgLi4uYXJncyk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXNzaWduKG1vZGVsOiBSZWNpcGllbnRNb2RlbCkge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCBtb2RlbCwge1xyXG4gICAgICBtb2RlbDogT2JqZWN0LmRlZXBBc3NpZ24odGhpcy5tb2RlbC5tb2RlbCwgbW9kZWwubW9kZWwpIC8vIHByZXNlcnZlIG9iamVjdCByZWZcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbW9kZWxDaGFuZ2UubmV4dCh0aGlzLm1vZGVsKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCI+XHJcbiAgPGJpemRvYy1wZW9wbGUgW21vZGVsXT1cIm1vZGVsXCIgKm5nSWY9XCJtb2RlICE9PSAnY29tcG9zZScgJiYgY29udGFjdHNcIj48L2JpemRvYy1wZW9wbGU+XHJcbiAgPGJpemRvYy1hdHRhY2htZW50cyBbbW9kZWxdPVwibW9kZWxcIiBbaW5jbHVkZURlbGV0ZWRdPVwidHJ1ZVwiIFt2aWV3ZWRJbmRpY2F0b3JdPVwiZmFsc2VcIj48L2JpemRvYy1hdHRhY2htZW50cz5cclxuICA8ZGl2ICpuZ0lmPVwiIW1vZGVsLnJlcGxpZWQgJiYgbW9kZSAhPT0gJ2NvbXBvc2UnICYmIG1vZGVsLm5vdGVcIiBjbGFzcz1cImNvbXBvc2Utbm90ZVwiPlxyXG4gICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmluZm88L21hdC1pY29uPiA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57e21vZGVsLm5vdGV9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwibW9kZWwudGFnc1wiPlxyXG4gICAgPHNwYW4gKm5nRm9yPVwibGV0IHRhZyBvZiBtb2RlbC50YWdzXCIgY2xhc3M9XCJtYXQtY2hpcCBtYXQtc3RhbmRhcmQtY2hpcCBzbWFsbC1jaGlwXCI+e3t0YWd9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy1jb250YWluZXIgI2NvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cclxuPGZvcm0gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj48aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSBtdWx0aXBsZSAvPjwvZm9ybT5cclxuIl19
432
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQTRDLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFGLE9BQU8sRUFBNkIsY0FBYyxFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBTXJHLE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU1yRCxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhFLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFD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QUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O2lIQXRZVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixxZkFtQnBCLG9CQUFvQixtSUFDQyxnQkFBZ0IsZ0VDdERsRCxvdUJBWUE7MkZEc0JhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxhQUFhLFFBRWpCO3dCQUNKLEtBQUssRUFBRSwrQkFBK0I7cUJBQ3ZDO29iQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdQLE9BQU87c0JBRE4sS0FBSztnQkFFYSxhQUFhO3NCQUEvQixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUkrQixZQUFZO3NCQUFoRCxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dCLFdBQVc7c0JBQTdELFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNpQixVQUFVO3NCQUEzRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIE9uRGVzdHJveSwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBmcm9tLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCwgc3dpdGNoTWFwLCBzdGFydFdpdGgsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNCb29sZWFuLCBpc1Byb21pc2UsIHF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgRm9ybSwgQWN0aW9uLCBBdHRhY2htZW50LCBBdHRhY2htZW50TW9kZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCwgVmlld01vZGUgfSBmcm9tICcuLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UsIEl0ZW1FeHRyYSwgRE9DVU1FTlRfTU9ERUwsIEF0dGFjaG1lbnRFeHRyYSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvZ3VpZGUvZ3VpZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyJztcclxuaW1wb3J0IHsgRm9ybVJlZiwgU2F2ZUV2ZW50QXJncyB9IGZyb20gJy4vZm9ybS1yZWYnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50c0NvbXBvbmVudCB9IGZyb20gJy4vYXR0YWNobWVudHMvYXR0YWNobWVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFnc0NvbXBvbmVudCB9IGZyb20gJy4vdGFnL3RhZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuXHJcbi8qKiBzYXZlIGRyYWZ0IG1zICovXHJcbmV4cG9ydCBjb25zdCBBVVRPX1NBVkVfREVMQVkgPSA1MDAwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAnZm9ybS1jb250YWluZXIgYml6ZG9jLWNvbXBvc2UnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcG9zZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBtb2RlbDogUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwaWVudE1vZGVsPGFueT4+KCk7XHJcbiAgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKVxyXG4gIHdvcmtpbmcgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgd29ya2luZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKVxyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGRpcnR5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgdmFsaWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KCkgbW9kZTogVmlld01vZGU7XHJcbiAgQElucHV0KCkgY29udGFjdHMgPSB0cnVlO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdID0gW107XHJcbiAgcGFnZTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGhlbHA6IHN0cmluZztcclxuICBAVmlld0NoaWxkKCdmaWxlJywgeyBzdGF0aWM6IHRydWUgfSkgX2ZpbGVFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoQXR0YWNobWVudHNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGF0dGFjaG1lbnRzOiBBdHRhY2htZW50c0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdjb21wb25lbnQnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBfY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIHByaXZhdGUgX2Zvcm1SZWY6IEZvcm1SZWY7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IEZvcm1Db21wb25lbnQ8YW55PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tiYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdpbmc6IEh1YlNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX2ZpbGVDaGFuZ2VMaXN0ZW5lci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jYWxsYmFjayQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy5faW5zdGFuY2Uub25NZXNzYWdlXHJcbiAgICAgICAgJiYgdGhpcy5faW5zdGFuY2Uub25NZXNzYWdlKGUubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy51cGRhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGlmIChlLm1vZGVsLmlkID09PSB0aGlzLm1vZGVsLmlkKSB7XHJcbiAgICAgICAgKGUudXNlcklkICE9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkgJiZcclxuICAgICAgICAgIHRoaXMuX2FjY291bnRzLmdldChlLnVzZXJJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3Blbih0aGlzLl90cmFuc2xhdGUuZ2V0KCdNYWlsVmVyc2lvblVwZGF0ZScsIHRoaXMubW9kZWwubnVtYmVyLCB1Lm5hbWUpLFxyXG4gICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ09LJyksIHtcclxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICB9KS5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fYXNzaWduKGUubW9kZWwpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZmlsdGVyKGUgPT4gZS5pZCA9PT0gdGhpcy5tb2RlbC5pZCkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgIXRoaXMud29ya2luZyAmJlxyXG4gICAgICAgIHRoaXMuX2Fzc2lnbihlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZm9ybVJlZiAmJiB0aGlzLl9mb3JtUmVmLl9kZXN0cm95KCk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5tb2RlbC5mb3JtSWQpO1xyXG4gICAgdGhpcy5oZWxwID0gdGhpcy5mb3JtLmd1aWRlO1xyXG4gICAgaWYgKCF0aGlzLmZvcm0udGVtcGxhdGUpXHJcbiAgICAgIHRocm93IChgRm9ybSAnJHt0aGlzLmZvcm0ubmFtZX0nIG1vZGVsIG1pc3NpbmcgJ1tUZW1wbGF0ZSgpXScgYXR0cmlidXRlLmApO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2NmLnJlc29sdmUodGhpcy5mb3JtLnRlbXBsYXRlKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYgPSBuZXcgRm9ybVJlZigpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5cclxuICAgICAgc3Vic2NyaWJlKHAgPT4gdGhpcy5wYWdlID0gcCk7XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9zdGF0ZUNoYW5nZS5waXBlKHN0YXJ0V2l0aCgpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHRoaXMuaGVscCA9IHRoaXMuX2Zvcm1SZWYuaGVscCk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBGb3JtUmVmLCB1c2VWYWx1ZTogdGhpcy5fZm9ybVJlZlxyXG4gICAgICB9LCB7XHJcbiAgICAgICAgcHJvdmlkZTogRE9DVU1FTlRfTU9ERUwsIHVzZVZhbHVlOiB0aGlzLm1vZGVsXHJcbiAgICAgIH1cclxuICAgIF0sIHRoaXMuX2luamVjdG9yXHJcbiAgICApO1xyXG4gICAgdGhpcy5fY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnksIDAsIGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9tb2RlID0gdGhpcy5faW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcclxuICAgIHRoaXMuX2luc3RhbmNlLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgeyBkaXJ0eSwgdmFsaWQgfSA9IHRoaXMuX2luc3RhbmNlLmZvcm07XHJcbiAgICAgIHRoaXMuZGlydHkgPSBkaXJ0eTtcclxuICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KGRpcnR5KTtcclxuICAgICAgdGhpcy52YWxpZCA9IHZhbGlkO1xyXG4gICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodmFsaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1vZGVsLmRyYWZ0ICYmIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoQVVUT19TQVZFX0RFTEFZKSkuc3Vic2NyaWJlKCgpID0+ICF0aGlzLndvcmtpbmcgJiYgdGhpcy5kaXJ0eSAmJlxyXG4gICAgICAgIHRoaXMuc2F2ZShmYWxzZSkuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5fcmVzZXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZUxpc3RlbmVyKGV2OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXYuc3JjRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50LFxyXG4gICAgICBhcnI6IEZpbGVbXSA9IFtdO1xyXG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIGFyci5wdXNoKGZpbGVzW2ldKTtcclxuICAgICAgdGhpcy51cGxvYWQoYXJyKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYXR0YWNobWVudHMubmdPbkNoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FwcGx5Q2hhbmdlcygpIHtcclxuICAgIE9iamVjdC5kZWVwQXNzaWduKHRoaXMubW9kZWwubW9kZWwsIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWUpO1xyXG4gIH1cclxuICBuYXZpZ2F0ZShwYWdlOiBhbnkpIHtcclxuICAgIGNvbnN0IHBhZ2VuID0gcGFyc2VJbnQocGFnZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9uYXZpZ2F0aW5nLm5leHQoaXNOYU4ocGFnZW4pID8gcGFnZSA6IHBhZ2VuKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0QWN0aW9uQWRqZWN0aXZlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYWN0aW9ucy5maW5kKGEgPT4gYS5uYW1lID09PSBuYW1lKTtcclxuICAgIHJldHVybiAoYWN0aW9uLmFkamVjdGl2ZSB8fCBhY3Rpb24ucGFzdCB8fCBhY3Rpb24udGl0bGUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NhdmUoZmVlZGJhY2s6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGNvbnN0IHsgaWQsIHZlcnNpb24sIGZvcm1JZCwgbW9kZWwsIGRyYWZ0IH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc2F2ZShpZCwgZm9ybUlkLCB2ZXJzaW9uLCBtb2RlbCkucGlwZShcclxuICAgICAgdGFwKG0gPT4ge1xyXG4gICAgICAgIHRoaXMuX2Fzc2lnbihtKTtcclxuICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdChkcmFmdCA/ICdEcmFmdFNhdmVkJyA6ICdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnU2F2ZUVycicpO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSksIG1hcCgoKSA9PiB0cnVlKSk7XHJcbiAgfVxyXG4gIHVwbG9hZChmaWxlczogRmlsZVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGxldCBleGlzdHM6IGJvb2xlYW47XHJcbiAgICBmaWxlcy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBpZiAoIWV4aXN0cylcclxuICAgICAgICBleGlzdHMgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLnNvbWUoYSA9PiBhLmZpbGVOYW1lID09PSBmLm5hbWUgJiYgIWEuZGVsZXRlZCAmJiAhKGEgYXMgQXR0YWNobWVudEV4dHJhKS5mYWlsZWQpO1xyXG4gICAgICBjb25zdCByZXRyeSA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZEluZGV4KGEgPT4gYS5maWxlTmFtZSA9PT0gZi5uYW1lICYmIChhIGFzIEF0dGFjaG1lbnRFeHRyYSkuZmFpbGVkKTtcclxuICAgICAgaWYgKHJldHJ5ID4gLTEpXHJcbiAgICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5zcGxpY2UocmV0cnksIDEpO1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMuX2NvbnN0cnVjdEF0dGFjaG1lbnQoZik7XHJcbiAgICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMucHVzaChtb2RlbCk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnVwbG9hZCh0aGlzLm1vZGVsLmlkLCB0aGlzLm1vZGVsLmZvcm1JZCwgdGhpcy5tb2RlbC52ZXJzaW9uLCBmaWxlcykuXHJcbiAgICAgIHBpcGUodGFwKChyOiBBdHRhY2htZW50W10pID0+IHtcclxuICAgICAgICBmaWxlcy5sZW5ndGggPT09IDEgPyB0aGlzLl9zYi50b2FzdChcclxuICAgICAgICAgICFleGlzdHMgPyAnVXBsb2FkT2snIDogJ1VwbG9hZFZlcnNpb25PaycsIGZpbGVzWzBdLm5hbWUpIDpcclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdVcGxvYWRNYW55JywgZmlsZXMubGVuZ3RoKTtcclxuICAgICAgICByLmZvckVhY2goaSA9PiBcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbC5hdHRhY2htZW50cy5maW5kKGE9PiBhLmZpbGVOYW1lID09IGkuZmlsZU5hbWUgJiYgIWEuaWQpLCBpLCB7cHJvZ3Jlc3M6IG51bGwsfSwgaSlcclxuICAgICAgICApOyBcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnVXBsb2FkRmFpbGVkJywgZmlsZXNbMF0ubmFtZSk7XHJcblxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdVcGxvYWRGYWlsZWQnKTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29uc3RydWN0QXR0YWNobWVudChmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLCB1dGMgPSBuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgbm93LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1c2VySWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQsXHJcbiAgICAgIGJ5SWQ6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUlkLFxyXG4gICAgICB0aW1lOiB1dGMudG9KU09OKCkgYXMgYW55LFxyXG4gICAgICBmaWxlTmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICBjb250ZW50VHlwZTogZmlsZS50eXBlLFxyXG4gICAgICBtb2RlOiBBdHRhY2htZW50TW9kZS5QdWJsaWNcclxuICAgIH0gYXMgQXR0YWNobWVudDtcclxuICB9XHJcbiAgdGFnKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihUYWdzQ29tcG9uZW50LCAoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLCB7XHJcbiAgICAgIGRhdGE6IHRoaXMubW9kZWxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc2V0KCkge1xyXG4gICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5faW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICF0aGlzLl9pbnN0YW5jZS5mb3JtLnByaXN0aW5lICYmIHRoaXMuX2luc3RhbmNlLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMudmFsaWQgPSB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbGlkO1xyXG4gICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHRoaXMudmFsaWQpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuZGlydHkpO1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5tb2RlbC5hY3Rpb25zID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmlsdGVyKGEgPT4gdGhpcy5tb2RlbC5hY3Rpb25zLmluZGV4T2YoYS5uYW1lKSA+IC0xKS5cclxuICAgICAgc29ydCh0aGlzLl9zb3J0QWN0aW9ucykgOiBbXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc29ydEFjdGlvbnMoYTogQWN0aW9uLCBiOiBBY3Rpb24pIHtcclxuICAgIGlmIChhLmdyb3VwICYmIGIuZ3JvdXAgJiYgYS5ncm91cCAhPT0gYi5ncm91cClcclxuICAgICAgcmV0dXJuIGEuZ3JvdXAgPCBiLmdyb3VwID8gLTEgOiAxO1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBndWlkZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2d1aWRlLnN0YXJ0KG5hbWUpO1xyXG4gIH1cclxuICBhdHRhY2goKSB7XHJcbiAgICBjb25zdCBlbGVtID0gdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgZWxlbS5jbGljaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmZWVkYmFja1xyXG4gICAqL1xyXG4gIHNhdmUoZmVlZGJhY2sgPSB0cnVlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgIGNvbnN0IHNhdmVBcmdzID0geyBjYW5jZWw6IGZhbHNlIH0gYXMgU2F2ZUV2ZW50QXJncztcclxuICAgIHRoaXMuX2Zvcm1SZWYuX3NhdmluZy5uZXh0KHNhdmVBcmdzKTtcclxuICAgIGlmIChzYXZlQXJncy5jYW5jZWwpXHJcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2Uub25TYXZlKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2luc3RhbmNlLm9uU2F2ZSgpO1xyXG4gICAgICBpZiAoaXNCb29sZWFuKHJlc3VsdCkpIHtcclxuICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgZmVlZGJhY2sgJiYgdGhpcy5fc2IudG9hc3QoJ1ZhbGlkYXRlRXJyJyk7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpc1Byb21pc2UocmVzdWx0KSlcclxuICAgICAgICByZXR1cm4gZnJvbShyZXN1bHQpLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3NhdmUoZmVlZGJhY2spKSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICByZXR1cm4gKHJlc3VsdCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9zYXZlKGZlZWRiYWNrKSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3NhdmUoZmVlZGJhY2spO1xyXG4gIH1cclxuICBmbGFnKCkge1xyXG4gICAgY29uc3QgZXh0cmEgPSB0aGlzLm1vZGVsIGFzIEl0ZW1FeHRyYSwgeyBmbGFnIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgZXh0cmEud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5mbGFnKHRoaXMubW9kZWwuaWQsICFmbGFnKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsLmZsYWcgPSAhZmxhZztcclxuICAgICAgZXh0cmEud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSwgKCkgPT4ge1xyXG4gICAgICBleHRyYS53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuX2FwcGx5Q2hhbmdlcygpO1xyXG4gICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgbnVtYmVyIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc3VibWl0KGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsKS5cclxuICAgICAgcGlwZSh0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTdWJtaXR0ZWQnLCBudW1iZXIpO1xyXG4gICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTdWJtaXRFcnInKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBiYWNrKCkge1xyXG4gICAgdGhpcy5fZm9ybVJlZi5uYXZpZ2F0ZSgpO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5hc2soJ0Rpc2NhcmRBc2snLCAnRGlzY2FyZCcsIHtcclxuICAgICAgICBjb2xvcjogJ3dhcm4nLCBvazogJ0Rpc2NhcmQnXHJcbiAgICAgIH0pLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgICAgaWYgKG9rKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuX21haWxib3guZGVsZXRlKHRoaXMubW9kZWwuaWQpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdOZXR3b3JrRXJyJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICBpdGVtOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgfSBhcyBBY3Rpb25EaWFsb2dEYXRhLFxyXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXHJcbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICAgIGlmIChhcmdzKSB7XHJcbiAgICAgICAgICB0aGlzLl9hcHBseUNoYW5nZXMoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5UGFyYW1zKGFyZ3MpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgbnVtYmVyLCBtb2RlbCwgZm9ybUlkIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX21haWxib3guc2VuZChpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgYWN0aW9uLCBwYXJhbXMpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTZW50JywgbnVtYmVyLCB0aGlzLl9nZXRBY3Rpb25BZGplY3RpdmUoYWN0aW9uKSk7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSwgZSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTZW5kRXJyJyk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb3B5KCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jb3B5KHRoaXMubW9kZWwuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKGkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQ29waWVkJywgaS5udW1iZXIgfHwgdGhpcy5mb3JtLnRpdGxlKTtcclxuICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaS5pZC5lbmNvZGVJZCgpXSwge1xyXG4gICAgICAgIHN0YXRlOiB7IGl0ZW06IGkgfVxyXG4gICAgICB9KTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBpdGVtXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgcmVzb3VyY2VcclxuICAgKiBAcGFyYW0gYXJnc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZUVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgICBjYXNlIDQwMTpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA5OiAvLyB2ZXJzaW9uIGNoYW5nZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICAgIG9iaiAmJiB0aGlzLl9hc3NpZ24ob2JqKTtcclxuICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1ZlcnNpb25FcnInLCB0aGlzLm1vZGVsLm51bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgNDA2OiAvLyB2YWxpZGF0aW9uIGV4Y2VwdGlvblxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3JTdHJpbmcocmVzcG9uc2UuZXJyb3IpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKG1lc3NhZ2UsIC4uLmFyZ3MpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Fzc2lnbihtb2RlbDogUmVjaXBpZW50TW9kZWwpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgbW9kZWwsIHtcclxuICAgICAgbW9kZWw6IE9iamVjdC5kZWVwQXNzaWduKHRoaXMubW9kZWwubW9kZWwsIG1vZGVsLm1vZGVsKSAvLyBwcmVzZXJ2ZSBvYmplY3QgcmVmXHJcbiAgICB9KTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX21vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlclwiPlxyXG4gIDxiaXpkb2MtcGVvcGxlIFttb2RlbF09XCJtb2RlbFwiICpuZ0lmPVwibW9kZSAhPT0gJ2NvbXBvc2UnICYmIGNvbnRhY3RzXCI+PC9iaXpkb2MtcGVvcGxlPlxyXG4gIDxiaXpkb2MtYXR0YWNobWVudHMgW21vZGVsXT1cIm1vZGVsXCIgW2luY2x1ZGVEZWxldGVkXT1cInRydWVcIiBbdmlld2VkSW5kaWNhdG9yXT1cImZhbHNlXCI+PC9iaXpkb2MtYXR0YWNobWVudHM+XHJcbiAgPGRpdiAqbmdJZj1cIiFtb2RlbC5yZXBsaWVkICYmIG1vZGUgIT09ICdjb21wb3NlJyAmJiBtb2RlbC5ub3RlXCIgY2xhc3M9XCJjb21wb3NlLW5vdGVcIj5cclxuICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5pbmZvPC9tYXQtaWNvbj4gPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+e3ttb2RlbC5ub3RlfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIm1vZGVsLnRhZ3NcIj5cclxuICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgbW9kZWwudGFnc1wiIGNsYXNzPVwibWF0LWNoaXAgbWF0LXN0YW5kYXJkLWNoaXAgc21hbGwtY2hpcFwiPnt7dGFnfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48bmctY29udGFpbmVyICNjb21wb25lbnQ+PC9uZy1jb250YWluZXI+XHJcbjxmb3JtIHN0eWxlPVwiZGlzcGxheTpub25lXCI+PGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgbXVsdGlwbGUgLz48L2Zvcm0+XHJcbiJdfQ==
@@ -36,12 +36,12 @@ export class TracePaneComponent {
36
36
  }
37
37
  }
38
38
  TracePaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TracePaneComponent, deps: [{ token: i1.TranslateService }, { token: i2.PaneRef }, { token: i3.PanesRouter }], target: i0.ɵɵFactoryTarget.Component });
39
- TracePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TracePaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"version($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}::ng-deep .tool{opacity:.2}:host:hover ::ng-deep .tool{opacity:1!important}\n"], components: [{ type: i4.TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { type: i5.FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "connectorType"] }] });
39
+ TracePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TracePaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"version($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"], components: [{ type: i4.TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { type: i5.FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "connectorType"] }] });
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TracePaneComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ host: {
43
43
  class: 'pane'
44
- }, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"version($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}::ng-deep .tool{opacity:.2}:host:hover ::ng-deep .tool{opacity:1!important}\n"] }]
44
+ }, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"version($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"] }]
45
45
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.PaneRef }, { type: i3.PanesRouter }]; }, propDecorators: { trace: [{
46
46
  type: ViewChild,
47
47
  args: [TraceViewComponent, { static: true }]
@@ -17,8 +17,15 @@ function decoratorOfType(decoratedType, decoratorType) {
17
17
  annotation instanceof decoratorType);
18
18
  }
19
19
  export class BizDocComponentFactoryResolver {
20
- constructor(_componentFactoryResolver) {
20
+ constructor(
21
+ //private _appRef: ApplicationRef,
22
+ _componentFactoryResolver) {
21
23
  this._componentFactoryResolver = _componentFactoryResolver;
24
+ //_appRef
25
+ // .componentTypes.forEach(t => {
26
+ // const type = t['__bizdoc'] as ComponentType;
27
+ // REGISTRY[type.selector] = t;
28
+ // });
22
29
  //this._factories = Array.from(_componentFactoryResolver['_factories'].keys());
23
30
  }
24
31
  component(componentSelector) {
@@ -54,4 +61,4 @@ BizDocComponentFactoryResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion:
54
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BizDocComponentFactoryResolver, decorators: [{
55
62
  type: Injectable
56
63
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFeEMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFVBQVU7SUFDM0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGVBQWUsQ0FBSSxhQUF3QixFQUFFLGFBQXNCO0lBQzFFLDhDQUE4QztJQUM5QyxPQUFPLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7SUFDdkcsb0RBQW9EO0lBQ3BELFVBQVUsWUFBWSxhQUFhLENBQ3BDLENBQUM7QUFDSixDQUFDO0FBRWEsTUFBTSxPQUFPLDhCQUE4QjtJQUVyRCxZQUFvQix5QkFBbUQ7UUFBbkQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRSwrRUFBK0U7SUFDbkYsQ0FBQztJQUNJLFNBQVMsQ0FBQyxpQkFBeUI7UUFDdEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUk7WUFDUCxNQUFNLENBQUMsa0RBQWtELGlCQUFpQixNQUFNLENBQUMsQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxPQUFPLENBQUMsaUJBQXlCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyQyx3RUFBd0U7UUFDOUUsb0RBQW9EO1FBQ3BELHVDQUF1QztRQUN2Qyx3Q0FBd0M7UUFDeEMsWUFBWTtRQUNaLEtBQUs7UUFDTCxHQUFHO1FBRVAsb0VBQW9FO1FBRXBFLHlGQUF5RjtRQUN6RixtQ0FBbUM7UUFDbkMsMEVBQTBFO1FBRTFFLHNHQUFzRztRQUN0RyxpR0FBaUc7UUFDakcsS0FBSztRQUVMLHVEQUF1RDtRQUN2RCw4R0FBOEc7UUFDOUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OzJIQXBDc0IsOEJBQThCOytIQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFBeEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgVHlwZSwgTmdNb2R1bGUsIENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJFR0lTVFJZIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbXBvbmVudHMoY29tcG9uZW50cykge1xyXG4gIGNvbXBvbmVudHMuZm9yRWFjaChjID0+IFJFR0lTVFJZW2NbJ19fYml6ZG9jJ11dID0gYyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBnZXRzIGEgZGVjb3JhdG9yIG9mIHRoZSByZXF1ZXN0ZWQgdHlwZSBvZmYgb2YgdGhlIGdpdmVuIGRlY29yYXRlZCB0eXBlXHJcbiAqIEBwYXJhbSBkZWNvcmF0ZWRUeXBlIHRvIGdldCBkZWNvcmF0b3IgYW5ub3RhdGlvbnMgb2ZmIG9mXHJcbiAqIEBwYXJhbSBkZWNvcmF0b3JUeXBlIHRvIHNlYXJjaCBmb3Igb3V0IG9mIGFsbCB0aGUgZGVjb3JhdG9ycyBvbiBkZWNvcmF0ZWRUeXBlXHJcbiAqIEByZXR1cm5zIGRlY29yYXRvciBmcm9tIHRoZSBkZWNvcmF0ZWRUeXBlIG9mIHRoZSBkZWNvcmF0b3JUeXBlXHJcbiAqL1xyXG5mdW5jdGlvbiBkZWNvcmF0b3JPZlR5cGU8VD4oZGVjb3JhdGVkVHlwZTogVHlwZTxhbnk+LCBkZWNvcmF0b3JUeXBlOiBUeXBlPFQ+KTogVCB7XHJcbiAgLy8gZ2V0IGFsbCBkZWNvcmF0b3JzIG9mZiBvZiB0aGUgcHJvdmlkZWQgdHlwZVxyXG4gIHJldHVybiBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkZWNvcmF0ZWRUeXBlLCAnX19hbm5vdGF0aW9uc19fJykudmFsdWUuZmluZCgoYW5ub3RhdGlvbjogYW55KSA9PlxyXG4gICAgLy8gZ2V0IHRoZSBkZWNvcmF0b3IgdGhhdCBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgdHlwZVxyXG4gICAgYW5ub3RhdGlvbiBpbnN0YW5jZW9mIGRlY29yYXRvclR5cGVcclxuICApO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpIGV4cG9ydCBjbGFzcyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIge1xyXG4gICAgcHJpdmF0ZSBfZmFjdG9yaWVzOiB1bmtub3duW107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgICAgIC8vdGhpcy5fZmFjdG9yaWVzID0gQXJyYXkuZnJvbShfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyWydfZmFjdG9yaWVzJ10ua2V5cygpKTtcclxuICAgIH1cclxuICBwdWJsaWMgY29tcG9uZW50KGNvbXBvbmVudFNlbGVjdG9yOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgY29tcCA9IFJFR0lTVFJZW2NvbXBvbmVudFNlbGVjdG9yXTtcclxuICAgICAgaWYgKCFjb21wKVxyXG4gICAgICAgIHRocm93IChgTm8gY29tcG9uZW50IHJlZ2lzdGVyZWQgYXMgQEJpekRvYyh7c2VsZWN0b3I6ICcke2NvbXBvbmVudFNlbGVjdG9yfSd9KS5gKTtcclxuICAgICAgcmV0dXJuIGNvbXA7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgcmVzb2x2ZShjb21wb25lbnRTZWxlY3Rvcjogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLmNvbXBvbmVudChjb21wb25lbnRTZWxlY3Rvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgLy9mb3IgKGxldCBjIG9mICg8YW55PnRoaXMuY29tcGlsZXIpLl9kZWxlZ2F0ZS5fY29tcGlsZWRUZW1wbGF0ZUNhY2hlKSB7XHJcbiAgICAgICAgICAvLyAgbGV0IG06IENvbXBpbGVEaXJlY3RpdmVNZXRhZGF0YSA9IGNbMV0uY29tcE1ldGE7XHJcbiAgICAgICAgICAvLyAgaWYgKG0uc2VsZWN0b3IgPT09IHRoaXMudGVtcGxhdGUpIHtcclxuICAgICAgICAgIC8vICAgIGZhY3RvcnkgPSA8YW55Pm0uY29tcG9uZW50RmFjdG9yeTtcclxuICAgICAgICAgIC8vICAgIGJyZWFrO1xyXG4gICAgICAgICAgLy8gIH1cclxuICAgICAgICAgIC8vfVxyXG5cclxuICAgICAgLy9jb25zdCBuZ01vZHVsZURlY29yYXRvciA9IGRlY29yYXRvck9mVHlwZShCaXpEb2NNb2R1bGUsIE5nTW9kdWxlKTtcclxuXHJcbiAgICAgIC8vY29uc3QgY29tcG9uZW50VHlwZSA9IG5nTW9kdWxlRGVjb3JhdG9yLmRlY2xhcmF0aW9ucy5maW5kKChkZWNsYXJhdGlvbjogVHlwZTxhbnk+KSA9PiB7XHJcbiAgICAgIC8vICAvLyBnZXQgdGhlIEBDb21wb25lbnQgZGVjb3JhdG9yXHJcbiAgICAgIC8vICBjb25zdCBkZWNsYXJhdGlvbkFubm90YXRpb24gPSBkZWNvcmF0b3JPZlR5cGUoZGVjbGFyYXRpb24sIENvbXBvbmVudCk7XHJcblxyXG4gICAgICAvLyAgLy8gZmluZCBhIGRlY2xhcmF0aW9uIHdpdGggdGhlIEBDb21wb25lbnQgZGVjb3JhdG9yIChub3QgYSBARGlyZWN0aXZlKSB3aXRoIHRoZSByZXF1ZXN0ZWQgc2VsZWN0b3JcclxuICAgICAgLy8gIHJldHVybiBkZWNsYXJhdGlvbkFubm90YXRpb24gIT0gbnVsbCAmJiBkZWNsYXJhdGlvbkFubm90YXRpb24uc2VsZWN0b3IgPT09IGNvbXBvbmVudFNlbGVjdG9yO1xyXG4gICAgICAvL30pO1xyXG5cclxuICAgICAgLy8vLyBnZXQgdGhlIGNvbXBvbmVudCBmYWN0b3J5IHVzaW5nIHRoZSBjb21wb25lbnQgdHlwZVxyXG4gICAgICAvL2NvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50VHlwZSBhcyBUeXBlPGFueT4pO1xyXG4gICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXApO1xyXG4gICAgICByZXR1cm4gZmFjdG9yeTtcclxuICAgIH1cclxufVxyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29tcG9uZW50LWZhY3RvcnktcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBdUQsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFpQixRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXZELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFVO0lBQzNDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxlQUFlLENBQUksYUFBd0IsRUFBRSxhQUFzQjtJQUMxRSw4Q0FBOEM7SUFDOUMsT0FBTyxPQUFPLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO0lBQ3ZHLG9EQUFvRDtJQUNwRCxVQUFVLFlBQVksYUFBYSxDQUNwQyxDQUFDO0FBQ0osQ0FBQztBQUVhLE1BQU0sT0FBTyw4QkFBOEI7SUFFdkQ7SUFDRSxrQ0FBa0M7SUFDMUIseUJBQW1EO1FBQW5ELDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDM0QsU0FBUztRQUNULGtDQUFrQztRQUNsQyxrREFBa0Q7UUFDbEQsa0NBQWtDO1FBQ2xDLE9BQU87UUFDSCwrRUFBK0U7SUFDbkYsQ0FBQztJQUNJLFNBQVMsQ0FBQyxpQkFBeUI7UUFDdEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUk7WUFDUCxNQUFNLENBQUMsa0RBQWtELGlCQUFpQixNQUFNLENBQUMsQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxPQUFPLENBQUMsaUJBQXlCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyQyx3RUFBd0U7UUFDOUUsb0RBQW9EO1FBQ3BELHVDQUF1QztRQUN2Qyx3Q0FBd0M7UUFDeEMsWUFBWTtRQUNaLEtBQUs7UUFDTCxHQUFHO1FBRVAsb0VBQW9FO1FBRXBFLHlGQUF5RjtRQUN6RixtQ0FBbUM7UUFDbkMsMEVBQTBFO1FBRTFFLHNHQUFzRztRQUN0RyxpR0FBaUc7UUFDakcsS0FBSztRQUVMLHVEQUF1RDtRQUN2RCw4R0FBOEc7UUFDOUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OzJIQTNDc0IsOEJBQThCOytIQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFBeEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBUeXBlLCBOZ01vZHVsZSwgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgUkVHSVNUUlkgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29tcG9uZW50cyhjb21wb25lbnRzKSB7XHJcbiAgY29tcG9uZW50cy5mb3JFYWNoKGMgPT4gUkVHSVNUUllbY1snX19iaXpkb2MnXV0gPSBjKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIGdldHMgYSBkZWNvcmF0b3Igb2YgdGhlIHJlcXVlc3RlZCB0eXBlIG9mZiBvZiB0aGUgZ2l2ZW4gZGVjb3JhdGVkIHR5cGVcclxuICogQHBhcmFtIGRlY29yYXRlZFR5cGUgdG8gZ2V0IGRlY29yYXRvciBhbm5vdGF0aW9ucyBvZmYgb2ZcclxuICogQHBhcmFtIGRlY29yYXRvclR5cGUgdG8gc2VhcmNoIGZvciBvdXQgb2YgYWxsIHRoZSBkZWNvcmF0b3JzIG9uIGRlY29yYXRlZFR5cGVcclxuICogQHJldHVybnMgZGVjb3JhdG9yIGZyb20gdGhlIGRlY29yYXRlZFR5cGUgb2YgdGhlIGRlY29yYXRvclR5cGVcclxuICovXHJcbmZ1bmN0aW9uIGRlY29yYXRvck9mVHlwZTxUPihkZWNvcmF0ZWRUeXBlOiBUeXBlPGFueT4sIGRlY29yYXRvclR5cGU6IFR5cGU8VD4pOiBUIHtcclxuICAvLyBnZXQgYWxsIGRlY29yYXRvcnMgb2ZmIG9mIHRoZSBwcm92aWRlZCB0eXBlXHJcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRlY29yYXRlZFR5cGUsICdfX2Fubm90YXRpb25zX18nKS52YWx1ZS5maW5kKChhbm5vdGF0aW9uOiBhbnkpID0+XHJcbiAgICAvLyBnZXQgdGhlIGRlY29yYXRvciB0aGF0IG1hdGNoZXMgdGhlIHJlcXVlc3RlZCB0eXBlXHJcbiAgICBhbm5vdGF0aW9uIGluc3RhbmNlb2YgZGVjb3JhdG9yVHlwZVxyXG4gICk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKCkgZXhwb3J0IGNsYXNzIEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XHJcbiAgICBwcml2YXRlIF9mYWN0b3JpZXM6IHVua25vd25bXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAvL19hcHBSZWZcclxuICAgIC8vICAuY29tcG9uZW50VHlwZXMuZm9yRWFjaCh0ID0+IHtcclxuICAgIC8vICAgIGNvbnN0IHR5cGUgPSB0WydfX2JpemRvYyddIGFzIENvbXBvbmVudFR5cGU7XHJcbiAgICAvLyAgICBSRUdJU1RSWVt0eXBlLnNlbGVjdG9yXSA9IHQ7XHJcbiAgICAvLyAgfSk7XHJcbiAgICAgICAgLy90aGlzLl9mYWN0b3JpZXMgPSBBcnJheS5mcm9tKF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJbJ19mYWN0b3JpZXMnXS5rZXlzKCkpO1xyXG4gICAgfVxyXG4gIHB1YmxpYyBjb21wb25lbnQoY29tcG9uZW50U2VsZWN0b3I6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBjb21wID0gUkVHSVNUUllbY29tcG9uZW50U2VsZWN0b3JdO1xyXG4gICAgICBpZiAoIWNvbXApXHJcbiAgICAgICAgdGhyb3cgKGBObyBjb21wb25lbnQgcmVnaXN0ZXJlZCBhcyBAQml6RG9jKHtzZWxlY3RvcjogJyR7Y29tcG9uZW50U2VsZWN0b3J9J30pLmApO1xyXG4gICAgICByZXR1cm4gY29tcDtcclxuICAgIH1cclxuICAgIHB1YmxpYyByZXNvbHZlKGNvbXBvbmVudFNlbGVjdG9yOiBzdHJpbmcpIHtcclxuICAgICAgY29uc3QgY29tcCA9IHRoaXMuY29tcG9uZW50KGNvbXBvbmVudFNlbGVjdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvL2ZvciAobGV0IGMgb2YgKDxhbnk+dGhpcy5jb21waWxlcikuX2RlbGVnYXRlLl9jb21waWxlZFRlbXBsYXRlQ2FjaGUpIHtcclxuICAgICAgICAgIC8vICBsZXQgbTogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhID0gY1sxXS5jb21wTWV0YTtcclxuICAgICAgICAgIC8vICBpZiAobS5zZWxlY3RvciA9PT0gdGhpcy50ZW1wbGF0ZSkge1xyXG4gICAgICAgICAgLy8gICAgZmFjdG9yeSA9IDxhbnk+bS5jb21wb25lbnRGYWN0b3J5O1xyXG4gICAgICAgICAgLy8gICAgYnJlYWs7XHJcbiAgICAgICAgICAvLyAgfVxyXG4gICAgICAgICAgLy99XHJcblxyXG4gICAgICAvL2NvbnN0IG5nTW9kdWxlRGVjb3JhdG9yID0gZGVjb3JhdG9yT2ZUeXBlKEJpekRvY01vZHVsZSwgTmdNb2R1bGUpO1xyXG5cclxuICAgICAgLy9jb25zdCBjb21wb25lbnRUeXBlID0gbmdNb2R1bGVEZWNvcmF0b3IuZGVjbGFyYXRpb25zLmZpbmQoKGRlY2xhcmF0aW9uOiBUeXBlPGFueT4pID0+IHtcclxuICAgICAgLy8gIC8vIGdldCB0aGUgQENvbXBvbmVudCBkZWNvcmF0b3JcclxuICAgICAgLy8gIGNvbnN0IGRlY2xhcmF0aW9uQW5ub3RhdGlvbiA9IGRlY29yYXRvck9mVHlwZShkZWNsYXJhdGlvbiwgQ29tcG9uZW50KTtcclxuXHJcbiAgICAgIC8vICAvLyBmaW5kIGEgZGVjbGFyYXRpb24gd2l0aCB0aGUgQENvbXBvbmVudCBkZWNvcmF0b3IgKG5vdCBhIEBEaXJlY3RpdmUpIHdpdGggdGhlIHJlcXVlc3RlZCBzZWxlY3RvclxyXG4gICAgICAvLyAgcmV0dXJuIGRlY2xhcmF0aW9uQW5ub3RhdGlvbiAhPSBudWxsICYmIGRlY2xhcmF0aW9uQW5ub3RhdGlvbi5zZWxlY3RvciA9PT0gY29tcG9uZW50U2VsZWN0b3I7XHJcbiAgICAgIC8vfSk7XHJcblxyXG4gICAgICAvLy8vIGdldCB0aGUgY29tcG9uZW50IGZhY3RvcnkgdXNpbmcgdGhlIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgIC8vY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRUeXBlIGFzIFR5cGU8YW55Pik7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcCk7XHJcbiAgICAgIHJldHVybiBmYWN0b3J5O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
170
170
  type: ViewChildren,
171
171
  args: [MatSelect]
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29udHJvbHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29udHJvbHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUV6SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFzQixrQkFBa0IsQ0FBQyxDQUFDO0FBNkJuRyxNQUFNO0FBTU4sTUFBTSxPQUFPLHFCQUFxQjtJQWVoQyxZQUN1QyxVQUErQixFQUN2QixXQUFnQyxFQUNyRSxHQUFnQixFQUNoQixTQUF3QixFQUN4QixZQUFzQixFQUN0QixHQUFzQixFQUN0QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixRQUFxQjtRQU5yQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsYUFBUSxHQUFSLFFB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QUNULElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztrSEExSVUscUJBQXFCLGtCQWdCVixlQUFlLDZCQUNmLHVCQUF1QjtzR0FqQmxDLHFCQUFxQiwrRkFJbEIsU0FBUyxnRENwRHpCLHN1REFrQ0E7MkZEY2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdDQUFnQzs7MEJBb0J2QyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVCQUF1QjtnUEFicEIsSUFBSTtzQkFBNUIsWUFBWTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBJbmplY3QsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEN1YmVBeGlzLCBDdWJlIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXNzaW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tIFwiLi4vZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ3ViZUluZm8gfSBmcm9tIFwiLi4vLi4vY3ViZS9jdWJlLWluZm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdW1TZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9jdWJlL21hdHJpeC90YWJsZS5jb21wb25lbnRcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBDT01CSU5BVElPTl9QSUNLRVJfQk9EWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21iaW5hdGlvbkJvZHlEYXRhPignY29tYmluYXRpb25fYm9keScpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5hdGlvbkJvZHlEYXRhIHtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBsaW1pdDogbnVtYmVyO1xyXG4gIGRpdmlkZXI6IHN0cmluZztcclxuICBkaXNwbGF5RGl2aWRlcjogc3RyaW5nO1xyXG4gIGV4cGxvcmVTZXR0aW5nczogRXhwbG9yZVNldHRpbmdzO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxvcmVTZXR0aW5ncyB7XHJcbiAgZW5hYmxlPzogYm9vbGVhbjtcclxuICAvKiogY3ViZSB2aWV3IG5hbWUgKi9cclxuICB2aWV3Pzogc3RyaW5nO1xyXG4gIGRlZmF1bHRzPzoge1xyXG4gICAgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpO1xyXG4gIH07XHJcbiAgaW5kaWNlcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIC8qKiBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgZmlsdGVycz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHhBeGlzOiBzdHJpbmc7XHJcbiAgc2VyaWVzOiBzdHJpbmc7XHJcbiAgc3VtPzogU3VtU2V0dGluZ3MgfCBTdW1TZXR0aW5nc1tdLFxyXG4gIC8qKiAqL1xyXG4gIGFnZ3JlZ2F0ZT86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNb2RlID0gJ2ZpbHRlcicgfCAncmVzdWx0cyc7XHJcbi8qKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jb21iaW5hdGlvbi1waWNrZXItYm9keScsXHJcbiAgdGVtcGxhdGVVcmw6ICdjb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnY29tYmluYXRpb24tcGlja2VyLWJvZHkuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21iaW5hdGlvblBpY2tlckJvZHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21iaW5hdGlvblNlbGVjdGVkRXZlbnQ+KCk7XHJcbiAgcmVhZG9ubHkgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW9kZT4oKTtcclxuICBtb2RlOiBNb2RlO1xyXG4gIEBWaWV3Q2hpbGRyZW4oTWF0U2VsZWN0KSBheGVzOiBRdWVyeUxpc3Q8TWF0U2VsZWN0PjtcclxuICByZWFkb25seSBfZXhwbG9yYWJsZTogYm9vbGVhbjtcclxuICBfd29ya2luZyA9IGZhbHNlO1xyXG4gIHJlYWRvbmx5IF9heGVzOiBDdWJlQXhpc1tdO1xyXG4gIHJlYWRvbmx5IF9mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IF9rZXlzOiB7IFt0eXBlOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKVtdIH0gPSB7fTtcclxuICByZWFkb25seSBfdmFsdWVzOiB7IFt0eXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgeyBba2V5OiBudW1iZXJdOiBhbnkgfSB9ID0ge307XHJcbiAgX2NvbWJpbmF0aW9uczogc3RyaW5nW11bXTtcclxuICBwcml2YXRlIF9kYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhO1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGlhbG9nRGF0YTogQ29tYmluYXRpb25Cb2R5RGF0YSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ09NQklOQVRJT05fUElDS0VSX0JPRFkpIG92ZXJsYXlEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tiYXI6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50SW5mbzogQ3ViZUluZm8sXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gb3ZlcmxheURhdGEgfHwgZGlhbG9nRGF0YTtcclxuICAgIGNvbnN0IHsgY3ViZSwgZXhwbG9yZVNldHRpbmdzIH0gPSB0aGlzLl9kYXRhO1xyXG4gICAgdGhpcy5fZXhwbG9yYWJsZSA9IGV4cGxvcmVTZXR0aW5ncy5lbmFibGUgIT09IGZhbHNlO1xyXG4gICAgaWYgKGN1YmUpXHJcbiAgICAgIHRoaXMuX2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICBpZiAoIXRoaXMuX2N1YmUpIHRocm93ICdObyBjdWJlJztcclxuICAgIHRoaXMuX2F4ZXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmlsdGVyKGEgPT4gYS5jb21iaW5hdGlvbik7XHJcbiAgICBpZiAoIXRoaXMuX2F4ZXMubGVuZ3RoKSB0aHJvdyAnTm8gYXhpcyB3aXRoIGNvbWJpbmF0aW9uJztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gICAgICB0aGlzLl9rZXlzW2EubmFtZV0gPSBbXTtcclxuICAgICAgdGhpcy5fZm9ybS5hZGRDb250cm9sKGEubmFtZSwgY29udHJvbCk7XHJcbiAgICAgIHRoaXMuX2RzLm1hcChhLmRhdGFUeXBlKS5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVzW2EuZGF0YVR5cGVdID0gbTtcclxuICAgICAgICBjb25zdCBrZXlzID0gdGhpcy5fa2V5c1thLm5hbWVdID0gT2JqZWN0LmtleXMobSk7XHJcbiAgICAgICAgaWYgKGtleXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKSBjb250cm9sLnNldFZhbHVlKGtleXNbMF0pO1xyXG4gICAgICAgICAgY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB0aGlzLl9kYXRhLnZhbHVlICYmIHRoaXMuX3BhdGNoRm9ybSh0aGlzLl9kYXRhLnZhbHVlKTtcclxuICAgIHRoaXMuX3N3aXRjaE1vZGUoJ2ZpbHRlcicpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3BhdGNoRm9ybShjb2RlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNvZGVzID0gY29kZS5zcGxpdCh0aGlzLl9kYXRhLmRpdmlkZXIpLFxyXG4gICAgICB2YWx1ZXMgPSB7fTtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaCgoYSwgaSkgPT4gY29kZXNbaV0gJiYgKHZhbHVlc1thLm5hbWVdID0gY29kZXNbaV0pKTtcclxuICAgIHRoaXMuX2Zvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsXHJcbiAgICovXHJcbiAgX3N3aXRjaE1vZGUodmFsOiBNb2RlKSB7XHJcbiAgICB0aGlzLm1vZGUgPSB2YWw7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh2YWwgPT09ICdmaWx0ZXInKSB0aGlzLmF4ZXMuZmlyc3QuZm9jdXMoKTtcclxuICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSwgMClcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZmlsdGVyICovXHJcbiAgX2ZpbHRlcigpIHtcclxuICAgIHRoaXMuX3dvcmtpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5fZm9ybS52YWx1ZSwgYXJncyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4gdmFsdWVzW2EubmFtZV0gJiYgKGFyZ3NbYS5uYW1lXSA9IHZhbHVlc1thLm5hbWVdKSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmNvbWJpbmF0aW9ucyh0aGlzLl9jdWJlLm5hbWUsIGFyZ3MsIHsgdGFrZTogdGhpcy5fZGF0YS5saW1pdCwgcHJvZ3Jlc3M6IGZhbHNlIH0pLlxyXG4gICAgICBwaXBlKGZpbmFsaXplKCgpID0+IHRoaXMuX3dvcmtpbmcgPSBmYWxzZSkpLlxyXG4gICAgICBzdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgdGhpcy5fY29tYmluYXRpb25zID0gcjtcclxuICAgICAgICB0aGlzLl9zd2l0Y2hNb2RlKCdyZXN1bHRzJyk7XHJcbiAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgIH0sICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBpdGVtIHNlbGVjdFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX3NlbGVjdChheGVzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLl9uYW1lT2YoYXhlcyksXHJcbiAgICAgIHZhbHVlID0gdGhpcy5fY29kZU9mKGF4ZXMpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IHZhbHVlLCBkZXNjcmlwdGlvbiwgYXhlcyB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGNvZGVzXHJcbiAgICovXHJcbiAgX2NvZGVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGNvZGVzLmpvaW4odGhpcy5fZGF0YS5kaXZpZGVyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogdHJhbnNsYXRlIGNvZGUgc2VnbWVudHMgdG8gbmFtZXNcclxuICAgKiBAcGFyYW0gY29kZVxyXG4gICAqL1xyXG4gIF9uYW1lT2YoY29kZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9heGVzLm1hcCgoYSwgaSkgPT4gdGhpcy5fdmFsdWVzW2EuZGF0YVR5cGVdW2NvZGVzW2ldXSB8fCBjb2Rlc1tpXSkuXHJcbiAgICAgIGpvaW4odGhpcy5fZGF0YS5kaXNwbGF5RGl2aWRlciB8fCB0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBvcGVuIGluZm9cclxuICAgKiBAcGFyYW0gY29kZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKi9cclxuICBfaW5mbyhjb2Rlczogc3RyaW5nW10sIGV2dDogRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgZGVmYXVsdHMgfSA9IHRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzIHx8IHt9O1xyXG4gICAgY29uc3QgYXhlcyA9IHtcclxuICAgICAgLi4uZGVmYXVsdHNcclxuICAgIH07XHJcbiAgICBjb2Rlcy5zbGljZSgwLCB0aGlzLl9heGVzLmxlbmd0aCkuZm9yRWFjaCgoYSwgaSkgPT4gYXhlc1t0aGlzLl9heGVzW2ldLm5hbWVdID0gYSk7XHJcblxyXG4gICAgdGhpcy5fYWNjb3VudEluZm8ucG9wdXAoYXhlcywgZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHtcclxuICAgICAgLi4udGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MsXHJcbiAgICAgIGN1YmU6IHRoaXMuX2N1YmUubmFtZVxyXG4gICAgfSk7XHJcblxyXG4gICAgZXZ0LmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudCB7XHJcbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZzsgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZzsgcmVhZG9ubHkgYXhlczogc3RyaW5nW107XHJcbn1cclxuIiwiPGRpdiBbbmdTd2l0Y2hdPVwibW9kZVwiIGNsYXNzPVwiYWNjb3VudC1waWNrZXItcG9wdXBcIiBjZGtUcmFwRm9jdXM+XHJcbiAgPCEtLVtAdHJhbnNmb3JtUGFuZWxdPVwiZW50ZXJcIi0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidmaWx0ZXInXCI+XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIl93b3JraW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgPCEtLSBmaWx0ZXIgLS0+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIl9mb3JtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgYSBvZiBfYXhlczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3thLnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJfa2V5c1thLm5hbWVdLmxlbmd0aD4xXCI+e3snQWxsJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBrZXkgb2YgX2tleXNbYS5uYW1lXVwiIFt2YWx1ZV09XCJrZXlcIj57e192YWx1ZXNbYS5kYXRhVHlwZV1ba2V5XX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8bWF0LWhpbnQ+e3tfZm9ybS5jb250cm9sc1thLm5hbWVdLnZhbHVlfX08L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9maWx0ZXIoKVwiIFtkaXNhYmxlZF09XCJfd29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTZWFyY2gnfHRyYW5zbGF0ZVwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiIFt0YWJJbmRleF09XCJfYXhlcy5sZW5ndGhcIj5cclxuICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8IS0tIHJlc3VsdHMgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Jlc3VsdHMnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX3N3aXRjaE1vZGUoJ2ZpbHRlcicpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpbHRlcid8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG1hdC1hY3Rpb24tbGlzdD5cclxuICAgICAgPG1hdC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvZGVzIG9mIF9jb21iaW5hdGlvbnNcIiAoY2xpY2spPVwiX3NlbGVjdChjb2RlcylcIj5cclxuICAgICAgICA8aDMgbWF0TGluZT57e19uYW1lT2YoY29kZXMpfX08L2gzPlxyXG4gICAgICAgIDxwIG1hdExpbmUgKm5nSWY9XCJfZXhwbG9yYWJsZVwiPjxhIChjbGljayk9XCJfaW5mbyhjb2RlcywgJGV2ZW50KVwiPnt7X2NvZGVPZihjb2Rlcyl9fTwvYT48L3A+XHJcbiAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgIDwvbWF0LWFjdGlvbi1saXN0PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29udHJvbHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvY29udHJvbHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUV6SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUzFDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFzQixrQkFBa0IsQ0FBQyxDQUFDO0FBK0JuRyxNQUFNO0FBTU4sTUFBTSxPQUFPLHFCQUFxQjtJQWVoQyxZQUN1QyxVQUErQixFQUN2QixXQUFnQyxFQUNyRSxHQUFnQixFQUNoQixTQUF3QixFQUN4QixZQUFzQixFQUN0QixHQUFzQixFQUN0QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixRQUFxQjtRQU5yQixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsYUFBUSxHQUFSLFFB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QUNULElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOztrSEExSVUscUJBQXFCLGtCQWdCVixlQUFlLDZCQUNmLHVCQUF1QjtzR0FqQmxDLHFCQUFxQiwrRkFJbEIsU0FBUyxnREN0RHpCLHN1REFrQ0E7MkZEZ0JhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQ0FBZ0M7OzBCQW9CdkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1QkFBdUI7Z1BBYnBCLElBQUk7c0JBQTVCLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgSW5qZWN0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBDdWJlQXhpcywgQ3ViZSB9IGZyb20gXCIuLi9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVJbmZvIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS1pbmZvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3VtU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vY3ViZS9tYXRyaXgvdGFibGUuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ09NQklOQVRJT05fUElDS0VSX0JPRFkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYmluYXRpb25Cb2R5RGF0YT4oJ2NvbWJpbmF0aW9uX2JvZHknKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25Cb2R5RGF0YSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxuICBkaXZpZGVyOiBzdHJpbmc7XHJcbiAgZGlzcGxheURpdmlkZXI6IHN0cmluZztcclxuICBleHBsb3JlU2V0dGluZ3M6IEV4cGxvcmVTZXR0aW5ncztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlU2V0dGluZ3Mge1xyXG4gIGVuYWJsZT86IGJvb2xlYW47XHJcbiAgLyoqIGN1YmUgdmlldyBuYW1lICovXHJcbiAgdmlldz86IHN0cmluZztcclxuICBkZWZhdWx0cz86IHtcclxuICAgIFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9O1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIGZpbHRlcnM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICB4QXhpczogc3RyaW5nO1xyXG4gIHNlcmllczogc3RyaW5nO1xyXG4gIHN1bT86IFN1bVNldHRpbmdzIHwgU3VtU2V0dGluZ3NbXSxcclxuICAvKiogKi9cclxuICBhZ2dyZWdhdGU/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBzZXJpZXNUb3RhbExhYmVsPzogc3RyaW5nO1xyXG4gIHhBeGlzVG90YWxMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTW9kZSA9ICdmaWx0ZXInIHwgJ3Jlc3VsdHMnO1xyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcGlja2VyLWJvZHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnY29tYmluYXRpb24tcGlja2VyLWJvZHkuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tYmluYXRpb25QaWNrZXJCb2R5IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluYXRpb25TZWxlY3RlZEV2ZW50PigpO1xyXG4gIHJlYWRvbmx5IG1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGU+KCk7XHJcbiAgbW9kZTogTW9kZTtcclxuICBAVmlld0NoaWxkcmVuKE1hdFNlbGVjdCkgYXhlczogUXVlcnlMaXN0PE1hdFNlbGVjdD47XHJcbiAgcmVhZG9ubHkgX2V4cGxvcmFibGU6IGJvb2xlYW47XHJcbiAgX3dvcmtpbmcgPSBmYWxzZTtcclxuICByZWFkb25seSBfYXhlczogQ3ViZUF4aXNbXTtcclxuICByZWFkb25seSBfZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICB9KTtcclxuICByZWFkb25seSBfa2V5czogeyBbdHlwZTogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcilbXSB9ID0ge307XHJcbiAgcmVhZG9ubHkgX3ZhbHVlczogeyBbdHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHsgW2tleTogbnVtYmVyXTogYW55IH0gfSA9IHt9O1xyXG4gIF9jb21iaW5hdGlvbnM6IHN0cmluZ1tdW107XHJcbiAgcHJpdmF0ZSBfZGF0YTogQ29tYmluYXRpb25Cb2R5RGF0YTtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRpYWxvZ0RhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZKSBvdmVybGF5RGF0YTogQ29tYmluYXRpb25Cb2R5RGF0YSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3NuYWNrYmFyOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudEluZm86IEN1YmVJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IG92ZXJsYXlEYXRhIHx8IGRpYWxvZ0RhdGE7XHJcbiAgICBjb25zdCB7IGN1YmUsIGV4cGxvcmVTZXR0aW5ncyB9ID0gdGhpcy5fZGF0YTtcclxuICAgIHRoaXMuX2V4cGxvcmFibGUgPSBleHBsb3JlU2V0dGluZ3MuZW5hYmxlICE9PSBmYWxzZTtcclxuICAgIGlmIChjdWJlKVxyXG4gICAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgaWYgKCF0aGlzLl9jdWJlKSB0aHJvdyAnTm8gY3ViZSc7XHJcbiAgICB0aGlzLl9heGVzID0gdGhpcy5fY3ViZS5heGVzLmZpbHRlcihhID0+IGEuY29tYmluYXRpb24pO1xyXG4gICAgaWYgKCF0aGlzLl9heGVzLmxlbmd0aCkgdGhyb3cgJ05vIGF4aXMgd2l0aCBjb21iaW5hdGlvbic7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICAgICAgdGhpcy5fa2V5c1thLm5hbWVdID0gW107XHJcbiAgICAgIHRoaXMuX2Zvcm0uYWRkQ29udHJvbChhLm5hbWUsIGNvbnRyb2wpO1xyXG4gICAgICB0aGlzLl9kcy5tYXAoYS5kYXRhVHlwZSkuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlc1thLmRhdGFUeXBlXSA9IG07XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IHRoaXMuX2tleXNbYS5uYW1lXSA9IE9iamVjdC5rZXlzKG0pO1xyXG4gICAgICAgIGlmIChrZXlzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkgY29udHJvbC5zZXRWYWx1ZShrZXlzWzBdKTtcclxuICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2Zvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgdGhpcy5fZGF0YS52YWx1ZSAmJiB0aGlzLl9wYXRjaEZvcm0odGhpcy5fZGF0YS52YWx1ZSk7XHJcbiAgICB0aGlzLl9zd2l0Y2hNb2RlKCdmaWx0ZXInKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBwcml2YXRlIF9wYXRjaEZvcm0oY29kZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb2RlcyA9IGNvZGUuc3BsaXQodGhpcy5fZGF0YS5kaXZpZGVyKSxcclxuICAgICAgdmFsdWVzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goKGEsIGkpID0+IGNvZGVzW2ldICYmICh2YWx1ZXNbYS5uYW1lXSA9IGNvZGVzW2ldKSk7XHJcbiAgICB0aGlzLl9mb3JtLnBhdGNoVmFsdWUodmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHZhbFxyXG4gICAqL1xyXG4gIF9zd2l0Y2hNb2RlKHZhbDogTW9kZSkge1xyXG4gICAgdGhpcy5tb2RlID0gdmFsO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09PSAnZmlsdGVyJykgdGhpcy5heGVzLmZpcnN0LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0sIDApXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGZpbHRlciAqL1xyXG4gIF9maWx0ZXIoKSB7XHJcbiAgICB0aGlzLl93b3JraW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuX2Zvcm0udmFsdWUsIGFyZ3MgPSB7fTtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHZhbHVlc1thLm5hbWVdICYmIChhcmdzW2EubmFtZV0gPSB2YWx1ZXNbYS5uYW1lXSkpO1xyXG4gICAgdGhpcy5fc2VydmljZS5jb21iaW5hdGlvbnModGhpcy5fY3ViZS5uYW1lLCBhcmdzLCB7IHRha2U6IHRoaXMuX2RhdGEubGltaXQsIHByb2dyZXNzOiBmYWxzZSB9KS5cclxuICAgICAgcGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLl93b3JraW5nID0gZmFsc2UpKS5cclxuICAgICAgc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIHRoaXMuX2NvbWJpbmF0aW9ucyA9IHI7XHJcbiAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgIHIubGVuZ3RoID09PSB0aGlzLl9kYXRhLmxpbWl0ICYmIHRoaXMuX3NuYWNrYmFyLnRvYXN0KCdUYWtlTW9yZScpO1xyXG4gICAgICB9LCAoKSA9PiB0aGlzLl9zbmFja2Jhci5lcnJvcigpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogaXRlbSBzZWxlY3RcclxuICAgKiBAcGFyYW0gY29kZVxyXG4gICAqL1xyXG4gIF9zZWxlY3QoYXhlczogc3RyaW5nW10pIHtcclxuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5fbmFtZU9mKGF4ZXMpLFxyXG4gICAgICB2YWx1ZSA9IHRoaXMuX2NvZGVPZihheGVzKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoeyB2YWx1ZSwgZGVzY3JpcHRpb24sIGF4ZXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2Rlc1xyXG4gICAqL1xyXG4gIF9jb2RlT2YoY29kZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBjb2Rlcy5qb2luKHRoaXMuX2RhdGEuZGl2aWRlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHRyYW5zbGF0ZSBjb2RlIHNlZ21lbnRzIHRvIG5hbWVzXHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfbmFtZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXhlcy5tYXAoKGEsIGkpID0+IHRoaXMuX3ZhbHVlc1thLmRhdGFUeXBlXVtjb2Rlc1tpXV0gfHwgY29kZXNbaV0pLlxyXG4gICAgICBqb2luKHRoaXMuX2RhdGEuZGlzcGxheURpdmlkZXIgfHwgdGhpcy5fZGF0YS5kaXZpZGVyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogb3BlbiBpbmZvXHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgX2luZm8oY29kZXM6IHN0cmluZ1tdLCBldnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRzIH0gPSB0aGlzLl9kYXRhLmV4cGxvcmVTZXR0aW5ncyB8fCB7fTtcclxuICAgIGNvbnN0IGF4ZXMgPSB7XHJcbiAgICAgIC4uLmRlZmF1bHRzXHJcbiAgICB9O1xyXG4gICAgY29kZXMuc2xpY2UoMCwgdGhpcy5fYXhlcy5sZW5ndGgpLmZvckVhY2goKGEsIGkpID0+IGF4ZXNbdGhpcy5fYXhlc1tpXS5uYW1lXSA9IGEpO1xyXG5cclxuICAgIHRoaXMuX2FjY291bnRJbmZvLnBvcHVwKGF4ZXMsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuY29tcGxldGUoKTtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5hdGlvblNlbGVjdGVkRXZlbnQge1xyXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7IHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7IHJlYWRvbmx5IGF4ZXM6IHN0cmluZ1tdO1xyXG59XHJcbiIsIjxkaXYgW25nU3dpdGNoXT1cIm1vZGVcIiBjbGFzcz1cImFjY291bnQtcGlja2VyLXBvcHVwXCIgY2RrVHJhcEZvY3VzPlxyXG4gIDwhLS1bQHRyYW5zZm9ybVBhbmVsXT1cImVudGVyXCItLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZmlsdGVyJ1wiPlxyXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJfd29ya2luZyA/ICd2aXNpYmxlJzonaGlkZGVuJ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgIDwhLS0gZmlsdGVyIC0tPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJfZm9ybVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgKm5nRm9yPVwibGV0IGEgb2YgX2F4ZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPnt7YS50aXRsZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiX2tleXNbYS5uYW1lXS5sZW5ndGg+MVwiPnt7J0FsbCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQga2V5IG9mIF9rZXlzW2EubmFtZV1cIiBbdmFsdWVdPVwia2V5XCI+e3tfdmFsdWVzW2EuZGF0YVR5cGVdW2tleV19fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPG1hdC1oaW50Pnt7X2Zvcm0uY29udHJvbHNbYS5uYW1lXS52YWx1ZX19PC9tYXQtaGludD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfZmlsdGVyKClcIiBbZGlzYWJsZWRdPVwiX3dvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2VhcmNoJ3x0cmFuc2xhdGVcIiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIiBbdGFiSW5kZXhdPVwiX2F4ZXMubGVuZ3RoXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLSByZXN1bHRzIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyZXN1bHRzJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9zd2l0Y2hNb2RlKCdmaWx0ZXInKVwiIFtiaXpkb2NUb29sdGlwXT1cIidGaWx0ZXInfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtYWN0aW9uLWxpc3Q+XHJcbiAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBjb2RlcyBvZiBfY29tYmluYXRpb25zXCIgKGNsaWNrKT1cIl9zZWxlY3QoY29kZXMpXCI+XHJcbiAgICAgICAgPGgzIG1hdExpbmU+e3tfbmFtZU9mKGNvZGVzKX19PC9oMz5cclxuICAgICAgICA8cCBtYXRMaW5lICpuZ0lmPVwiX2V4cGxvcmFibGVcIj48YSAoY2xpY2spPVwiX2luZm8oY29kZXMsICRldmVudClcIj57e19jb2RlT2YoY29kZXMpfX08L2E+PC9wPlxyXG4gICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICA8L21hdC1hY3Rpb24tbGlzdD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==