@bizdoc/core 1.11.0-next.6 → 1.11.0-next.7

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 (32) hide show
  1. package/esm2020/lib/app.component.mjs +11 -4
  2. package/esm2020/lib/compose/trace/trace.pane.component.mjs +2 -2
  3. package/esm2020/lib/core/component-factory-resolver.mjs +9 -2
  4. package/esm2020/lib/core/controls/combination-picker-body.mjs +1 -1
  5. package/esm2020/lib/core/controls/file.input.mjs +7 -5
  6. package/esm2020/lib/core/functions.mjs +1 -1
  7. package/esm2020/lib/core/info/attachment-info.service.mjs +2 -2
  8. package/esm2020/lib/core/mailbox.service.mjs +1 -1
  9. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  10. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  11. package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
  12. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +4 -4
  13. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +5 -4
  14. package/esm2020/lib/cube/matrix/popup.component.mjs +6 -5
  15. package/esm2020/lib/cube/matrix/table.component.mjs +6 -4
  16. package/esm2020/lib/cube/pivot/pivot.component.mjs +13 -1
  17. package/esm2020/lib/dashboard/score/activity.widget.mjs +2 -5
  18. package/esm2020/lib/views/cube/matrix.component.mjs +19 -20
  19. package/fesm2015/bizdoc-core.mjs +77 -51
  20. package/fesm2015/bizdoc-core.mjs.map +1 -1
  21. package/fesm2020/bizdoc-core.mjs +77 -51
  22. package/fesm2020/bizdoc-core.mjs.map +1 -1
  23. package/lib/app.component.d.ts +3 -1
  24. package/lib/core/controls/combination-picker-body.d.ts +2 -0
  25. package/lib/core/functions.d.ts +3 -1
  26. package/lib/core/mailbox.service.d.ts +1 -0
  27. package/lib/cube/cube-info.service.d.ts +2 -2
  28. package/lib/cube/matrix/matrix.base.d.ts +2 -1
  29. package/lib/cube/matrix/table.component.d.ts +3 -2
  30. package/lib/cube/pivot/pivot.component.d.ts +3 -0
  31. package/lib/views/cube/matrix.component.d.ts +1 -3
  32. 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
@@ -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==
@@ -24,6 +24,7 @@ import * as i14 from "@angular/flex-layout/flex";
24
24
  import * as i15 from "../popup/tooltip.directive";
25
25
  import * as i16 from "../pipes/translate.pipe";
26
26
  import * as i17 from "../pipes/calendar.pipe";
27
+ const EXTENDED_ICONS = { 'xlsx': 'excel', 'docx': 'word', 'pptx': 'powerpoint', 'pdf': 'pdf' };
27
28
  export class FileInput {
28
29
  constructor(_dropableElement, _mailbox, _sanitizer, _attachmentInfo, _translate, _session, _sb, ngControl, _model) {
29
30
  this._dropableElement = _dropableElement;
@@ -263,12 +264,13 @@ export class FileInput {
263
264
  this._pending.next(arr);
264
265
  }
265
266
  _createItem(id) {
266
- const attachment = this._model.attachments.find(a => a.id === id), log = this._model.log.filter(l => l.fileId == attachment.id && l.userId == this._session.userId);
267
+ const attachment = this._model.attachments.find(a => a.id === id), log = this._model.log.filter(l => l.fileId == attachment.id && l.userId == this._session.userId), fileExt = AttachmentInfo.fileExt(attachment.fileName), icon = EXTENDED_ICONS[fileExt];
267
268
  return {
268
269
  ...attachment,
269
270
  hasPreview: AttachmentInfo.exists(attachment.contentType),
270
271
  isImage: AttachmentInfo.isImage(attachment.contentType),
271
- fileExt: AttachmentInfo.fileExt(attachment.fileName),
272
+ fileExt,
273
+ icon,
272
274
  url: this._sanitizer.bypassSecurityTrustUrl(this._mailbox.formatDownloadUrl(this._model.documentId, attachment.id)),
273
275
  checkedOut: (attachment.mode & AttachmentMode.CheckedOut) == AttachmentMode.CheckedOut &&
274
276
  attachment.holdingId === this._session.userId ?
@@ -309,10 +311,10 @@ export class FileInput {
309
311
  }
310
312
  FileInput.nextId = 0;
311
313
  FileInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FileInput, deps: [{ token: i0.ElementRef }, { token: i1.MailboxService }, { token: i2.DomSanitizer }, { token: i3.AttachmentInfo }, { token: i4.TranslateService }, { token: i5.SessionService }, { token: i6.PromptService }, { token: i7.NgControl, optional: true, self: true }, { token: DOCUMENT_MODEL }], target: i0.ɵɵFactoryTarget.Component });
312
- FileInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: FileInput, selector: "bizdoc-file-upload", inputs: { multiple: "multiple", accept: "accept", icon: "icon", value: "value", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)" }, properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy" }, classAttribute: "file-dropable" }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"], components: [{ type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": i16.TranslatePipe, "amCalendar": i17.CalendarPipe } });
314
+ FileInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: FileInput, selector: "bizdoc-file-upload", inputs: { multiple: "multiple", accept: "accept", icon: "icon", value: "value", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)" }, properties: { "id": "this.id", "attr.aria-describedby": "this.describedBy" }, classAttribute: "file-dropable" }, viewQueries: [{ propertyName: "_input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"], components: [{ type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], pipes: { "translate": i16.TranslatePipe, "amCalendar": i17.CalendarPipe } });
313
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FileInput, decorators: [{
314
316
  type: Component,
315
- args: [{ host: { class: 'file-dropable' }, selector: 'bizdoc-file-upload', template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"] }]
317
+ args: [{ host: { class: 'file-dropable' }, selector: 'bizdoc-file-upload', template: "<button mat-button *ngIf=\"!items; else preview\" (click)=\"prompt()\">\r\n <mat-icon class=\"filled\">{{icon}}</mat-icon>\r\n <span class=\"mat-h3\">{{placeholder}}</span>\r\n</button>\r\n<input type=\"file\" #input\r\n [accept]=accept [multiple]=multiple (change)='_change($event)' style=\"display: none\" />\r\n<ng-template #preview>\r\n <div *ngFor='let a of items' class=\"attachment-item\"\r\n [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\"\r\n [progressIndicator]=\"a.progress\">\r\n <img *ngIf=\"a.isImage\" [src]=\"a.url\" (click)=\"openPreview(a)\" height=\"80\" class=\"file-preview\">\r\n <div *ngIf=\"a.hasPreview && !a.isImage\" fxLayout=\"column\" class=\"file-preview\">\r\n <button mat-icon-button (click)=\"openPreview(a)\" [bizdocTooltip]=\"'Preview'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">find_in_page</mat-icon></button>\r\n <span>.{{a.fileExt}}</span>\r\n </div>\r\n <mat-icon *ngIf=\"a.icon\" [svgIcon]=\"a.icon\"></mat-icon>\r\n <div class=\"file-overlay row\">\r\n <span class=\"filename\">{{a.fileName}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button class=\"options\" [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Options' | translate\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </div>\r\n <mat-menu #menu>\r\n <ng-container *ngIf=\"!a.failed\">\r\n <ng-container *ngIf=\"canEdit(a) && !a.failed\">\r\n <ng-container *ngIf=\"!a.checkedOut\">\r\n <button mat-menu-item (click)=\"checkOut(a)\">{{\"CheckOut\" | translate}}</button>\r\n <button mat-menu-item (click)=\"prompt()\">{{\"Add\" | translate}}</button>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"checkIn(a)\" *ngIf=\"a.checkedOut\">{{\"CheckIn\" | translate}}</button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n <button mat-menu-item *ngIf=\"canPreview(a)\" (click)=\"openPreview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n <ng-container *ngIf=\"hasVersion(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item *ngFor=\"let v of getVersions(a)\" (click)=\"previewOrDownload(v)\">{{v.time | amCalendar}}</button>\r\n </ng-container>\r\n <ng-container *ngIf=\"canEdit(a)\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n </ng-container>\r\n </ng-container>\r\n <button mat-menu-item (click)=\"cancel(a)\" *ngIf=\"a.failed\">{{\"Cancel\" | translate}}</button>\r\n </mat-menu>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:flex}.attachment-item{height:80px;position:relative}.attachment-item img{cursor:zoom-in}.attachment-item .file-preview{position:absolute}.attachment-item .file-overlay{position:relative;height:inherit}.attachment-item .file-overlay .filename{font-size:x-small;background:rgba(255,255,255,.4);align-self:flex-end}.attachment-item .file-overlay:hover .filename{background:white;opacity:.5}\n"] }]
316
318
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MailboxService }, { type: i2.DomSanitizer }, { type: i3.AttachmentInfo }, { type: i4.TranslateService }, { type: i5.SessionService }, { type: i6.PromptService }, { type: i7.NgControl, decorators: [{
317
319
  type: Optional
318
320
  }, {
@@ -358,4 +360,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
358
360
  type: HostBinding,
359
361
  args: ['attr.aria-describedby']
360
362
  }] } });
361
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9jb250cm9scy9maWxlLmlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbnRyb2xzL2ZpbGUuaW5wdXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFtQixjQUFjLEVBQStCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEcsT0FBTyxFQUFjLGNBQWMsRUFBa0IsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXdkUsTUFBTSxPQUNFLFNBQVM7SUF3QmYsWUFDVSxnQkFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsVUFBd0IsRUFDeEIsZUFBK0IsRUFDL0IsVUFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsR0FBa0IsRUFDQyxTQUFvQixFQUNmLE1BQTJCO1FBUm5ELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBWTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ0MsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNmLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBL0JyQyxPQUFFLEdBQUcsb0JBQW9CLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNwQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBUWpCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxTQUFJLEdBQUcsU0FBUyxDQUFDO1FBU1QsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbkMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUEyTWxELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBWSxvQkFBb0IsQ0FBQztRQUNOLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBak1yRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNyQztJQUNILENBQUM7SUFqQ0QsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDVyxRQUFRLENBQUMsS0FBSztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUE0QkQsVUFBVSxDQUFDLElBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyRyxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQWdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBcUI7UUFDNUIsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRixJQUF3QixDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFxQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7O1lBRXZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFxQjtRQUM5QixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxPQUFPLENBQUMsSUFBcUI7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNqRyxDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQXFCO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxNQUFNLENBQUMsSUFBcUI7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBcUI7UUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JELGlEQUFpRDtZQUNqRCwwRUFBMEU7WUFDMUUsV0FBVztZQUNYLEdBQUc7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDMUYsaUNBQWlDO2dCQUNqQyx5QkFBeUI7Z0JBQ3pCLGtDQUFrQztnQkFDbEMsT0FBTztnQkFDUCxXQUFXO2dCQUNYLEdBQUc7Z0JBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUNBLENBQUE7SUFDSCxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQXFCO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFxQjtRQUMzQixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtvQkFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7b0JBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2FBQ3hCOztnQkFFQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLElBQUksRUFBRSxDQUFDOztZQUVQLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDNUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELFFBQVE7UUFDTixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVCLElBQUksRUFBRTtnQkFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBb0I7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxFQUFZLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEI7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDdkIsS0FBSyxJQUFJLElBQUksSUFBSSxVQUFVLEVBQUU7Z0JBQzNCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN0Ryw2Q0FBNkM7b0JBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ0osV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtZQUNELFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUNaLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDMUY7O1lBRUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBZ0I7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQXNCO1FBQy9CLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixPQUFPO1NBQ1I7YUFDSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUs7Z0JBQ1IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFhLEtBQUs7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFzQjtRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQWEsV0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLLEtBQWMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRTVDLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBWTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQ0ksUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUlELGlCQUFpQixDQUFDLEdBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxnQkFBZ0I7SUFDaEIsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUNPLE9BQU8sQ0FBQyxPQUFnRDtRQUM5RCxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksT0FBTyxDQUFDLE1BQU07Z0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2pELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSSxTQUFTO2dCQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNyRTtRQUNELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBZTtRQUNyQixJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQThCLENBQUM7UUFDckQsTUFBTSxHQUFHLEdBQUcsRUFBWSxDQUFDO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDTyxXQUFXLENBQUMsRUFBVTtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUMvRCxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRyxPQUFPO1lBQ0wsR0FBRyxVQUFVO1lBQ2IsVUFBVSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUN6RCxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBQ3ZELE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDcEQsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsRUFDUixDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxVQUFVO2dCQUN4RSxVQUFVLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9DLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM5QyxDQUFDO0lBQ3ZCLENBQUM7SUFDTyxPQUFPLENBQUMsS0FBYTtRQUMzQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDdEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQzNGLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gscUJBQXFCO2dCQUVyQixLQUFLO1lBQ1AsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN2QyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNaLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7QUEvU2MsZ0JBQU0sR0FBRyxDQUFFLENBQUE7c0dBRHBCLFNBQVMsb1JBaUNMLGNBQWM7MEZBakNsQixTQUFTLG9uQkN0QmpCLDhzRkErQ0E7MkZEekJRLFNBQVM7a0JBUGhCLFNBQVM7MkJBR0YsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFlBQ3RCLG9CQUFvQjs7MEJBbUMzQixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsTUFBTTsyQkFBQyxjQUFjOzRDQS9CQSxFQUFFO3NCQUF6QixXQUFXO2dCQU9ELFFBQVE7c0JBRGxCLEtBQUs7Z0JBSUcsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDYyxNQUFNO3NCQUF6QixTQUFTO3VCQUFDLE9BQU87Z0JBZ0hsQixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU16QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdDaEMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNckMsV0FBVztzQkFEVixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNckMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QnZCLEtBQUs7c0JBQWpCLEtBQUs7Z0JBT08sV0FBVztzQkFBdkIsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVFnQyxXQUFXO3NCQUFoRCxXQUFXO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRJbmZvIH0gZnJvbSAnLi4vaW5mby9hdHRhY2htZW50LWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRFeHRyYSwgRE9DVU1FTlRfTU9ERUwsIE1haWxib3hTZXJ2aWNlLCBVcGxvYWRFdmVudCB9IGZyb20gJy4uL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnQsIEF0dGFjaG1lbnRNb2RlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZmlsZS5pbnB1dC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZmlsZS5pbnB1dC5zY3NzJ10sXHJcbiAgaG9zdDogeyBjbGFzczogJ2ZpbGUtZHJvcGFibGUnIH0sXHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZmlsZS11cGxvYWQnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEZpbGVJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8bnVtYmVyIHwgbnVtYmVyW10+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1maWxlLXVwbG9hZC0ke0ZpbGVJbnB1dC5uZXh0SWQrK31gO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodmFsdWUpIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgYWNjZXB0ID0gbnVsbDtcclxuICBASW5wdXQoKSBpY29uID0gJ3B1Ymxpc2gnO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgX2lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIGl0ZW1zOiBBdHRhY2htZW50RXh0cmFbXTtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyIHwgbnVtYmVyW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ0Ryb3AgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmcgPSBuZXcgU3ViamVjdDxGaWxlW10+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kcm9wYWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBfYXR0YWNobWVudEluZm86IEF0dGFjaG1lbnRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgQEluamVjdChET0NVTUVOVF9NT0RFTCkgcHJpdmF0ZSBfbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT4sXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcbiAgaGFzVmVyc2lvbihpdGVtOiBBdHRhY2htZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmluZChhID0+IGEuZmlsZU5hbWUgPT09IGl0ZW0uZmlsZU5hbWUgJiYgYS5pZCAhPT0gaXRlbS5pZCkgIT0gbnVsbDtcclxuICB9XHJcbiAgZ2V0VmVyc2lvbnMoaXRlbTogQXR0YWNobWVudCk6IEF0dGFjaG1lbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYS5maWxlTmFtZSA9PT0gaXRlbS5maWxlTmFtZSAmJiBhLmlkICE9PSBpdGVtLmlkKTtcclxuICB9XHJcbiAgZG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBsb2NhdGlvbi5ocmVmID0gdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbC5kb2N1bWVudElkLCBpdGVtLmlkKTtcclxuICAgIChpdGVtIGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgcHJldmlld09yRG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBpZiAodGhpcy5jYW5QcmV2aWV3KGl0ZW0pKVxyXG4gICAgICB0aGlzLm9wZW5QcmV2aWV3KGl0ZW0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmRvd25sb2FkKGl0ZW0pO1xyXG4gIH1cclxuICBjYW5QcmV2aWV3KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEF0dGFjaG1lbnRJbmZvLmV4aXN0cyhpdGVtLmNvbnRlbnRUeXBlKTtcclxuICB9XHJcbiAgY2FuRWRpdChpdGVtOiBBdHRhY2htZW50RXh0cmEpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5fbW9kZWwuY29tcGxldGVkICYmIGl0ZW0udXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkICYmICFpdGVtLmRlbGV0ZWQ7XHJcbiAgfVxyXG4gIG9wZW5QcmV2aWV3KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgdGhpcy5fYXR0YWNobWVudEluZm8ucHJldmlldyh0aGlzLl9tb2RlbCwgaXRlbS5pZCk7XHJcbiAgfVxyXG4gIGNhbmNlbChpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLnJlbW92ZShpdGVtKTtcclxuICB9XHJcbiAgY2hlY2tJbihpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIGNvbnN0IGFjY2VwdCA9IGl0ZW0uaXNJbWFnZSA/ICdpbWFnZS8qJyA6XHJcbiAgICAgICcuJyArIEF0dGFjaG1lbnRJbmZvLmZpbGVFeHQoaXRlbS5maWxlTmFtZSkgKyAnLCcgKyBpdGVtLmNvbnRlbnRUeXBlO1xyXG4gICAgdGhpcy5fcHJvbXB0KHsgbXVsdGlwbGU6IGZhbHNlLCBhY2NlcHQgfSkudGhlbihmaWxlcyA9PiB7XHJcbiAgICAgIC8vaWYgKCFmaWxlc1swXS5uYW1lLnN0YXJ0c1dpdGgoaXRlbS5maWxlTmFtZSkpIHtcclxuICAgICAgLy8gIHRoaXMuX3NiLmVycm9yKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrSW5NYXRjaEVycicsIGl0ZW0uZmlsZU5hbWUpKTtcclxuICAgICAgLy8gIHJldHVybjtcclxuICAgICAgLy99XHJcbiAgICAgIHRoaXMuX21haWxib3guY2hlY2tJbih0aGlzLl9tb2RlbC5pZCwgdGhpcy5fbW9kZWwudmVyc2lvbiwgaXRlbS5pZCwgZmlsZXNbMF0pLnN1YnNjcmliZShhID0+IHtcclxuICAgICAgICAvL2lmIChhIGluc3RhbmNlb2YgVXBsb2FkRXZlbnQpIHtcclxuICAgICAgICAvLyAgT2JqZWN0LmFzc2lnbihpdGVtLCB7XHJcbiAgICAgICAgLy8gICAgcHJvZ3Jlc3M6IGEubG9hZGVkIC8gYS50b3RhbFxyXG4gICAgICAgIC8vICB9KTtcclxuICAgICAgICAvLyAgcmV0dXJuO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbSwgYSwgeyBwcm9ncmVzczogbnVsbCwgY2hlY2tlZE91dDogbnVsbCB9KTtcclxuICAgICAgICB0aGlzLl9zYi50b2FzdCh0aGlzLl90cmFuc2xhdGUuZ2V0KCdDaGVja2VkSW4nLCBpdGVtLmZpbGVOYW1lKSk7XHJcbiAgICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBjaGVja091dChpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIHRoaXMuX21haWxib3guY2hlY2tPdXQodGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLnZlcnNpb24sIGl0ZW0uaWQpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZE91dCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGRpc2NhcmQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBjb25zdCB0YXNrID0gKCkgPT5cclxuICAgICAgdGhpcy5fbWFpbGJveC5yZW1vdmVhdHRhY2htZW50KHRoaXMuX21vZGVsLmlkLCBpdGVtLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGl0ZW0uZGVsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMucmVtb3ZlKGl0ZW0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXMubWFwKGkgPT4gaS5pZCk7XHJcbiAgICAgICAgICBlbHNlIHRoaXMuaXRlbXMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5yZW1vdmUoaXRlbSk7XHJcbiAgICAgIH0sICgpID0+XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICBpZiAodGhpcy5fbW9kZWwuZHJhZnQpXHJcbiAgICAgIHRhc2soKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2IuYXNrKCdEZWxldGVGaWxlQXNrJywgJ0RlbGV0ZUZpbGUnLCB7IGNvbG9yOiAnd2FybicgfSkuc3Vic2NyaWJlKG9rID0+XHJcbiAgICAgICAgb2sgJiYgdGFzaygpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kcm9wYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX2RyYWdEcm9wLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgIGlmIChvaykgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWcnKTtcclxuICAgICAgZWxzZSBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZycpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyKSB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RyYWdGaWxlJyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmRyb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURvY3VtZW50RHJvcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGV2ZW50LmRhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IGZpbGVzID0gW10gYXMgRmlsZVtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gaXRlbXNbaV0uZ2V0QXNGaWxlKCk7XHJcbiAgICAgIGZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjaGVja2VkT3V0ID0gdGhpcy5pdGVtcy5maWx0ZXIoaSA9PiBpLmNoZWNrZWRPdXQpO1xyXG4gICAgaWYgKHRoaXMuaXRlbXMgJiYgY2hlY2tlZE91dC5sZW5ndGgpIHtcclxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBjaGVja2VkT3V0KSB7XHJcbiAgICAgICAgbGV0IGZpbGUgPSBmaWxlcy5maW5kKGYgPT4gZi5uYW1lLnN0YXJ0c1dpdGgoaXRlbS5maWxlTmFtZSkpO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBsZXQgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3guY2hlY2tJbih0aGlzLl9tb2RlbC5pZCwgdGhpcy5fbW9kZWwudmVyc2lvbiwgaXRlbS5pZCwgZmlsZSkucGlwZSh0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgIC8vT2JqZWN0LmFzc2lnbihpdGVtLCBhLCB7IHByb2dyZXNzOiBudWxsIH0pO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgY2hlY2tlZE91dC5sZW5ndGggPiAxID8gdGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluTicsIGNoZWNrZWRPdXQubGVuZ3RoKSA6XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrZWRJbicsIGNoZWNrZWRPdXRbMF0uZmlsZU5hbWUpKSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3VwbG9hZChmaWxlcyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2RyYWdEcm9wLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2RyYWdEcm9wLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2YWw6IG51bWJlciB8IG51bWJlcltdKTogdm9pZCB7XHJcbiAgICBpZiAoIXZhbCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKVxyXG4gICAgICB0aGlzLml0ZW1zID1cclxuICAgICAgICB2YWwubWFwKGkgPT4gdGhpcy5fY3JlYXRlSXRlbShpKSk7XHJcbiAgICBlbHNlIHRoaXMuaXRlbXNbdGhpcy5fY3JlYXRlSXRlbSh2YWwpXTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBudW1iZXIgfCBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IG51bWJlciB8IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGZvY3VzZWQ6IGJvb2xlYW47XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuaXRlbXM7IH1cclxuICBzaG91bGRMYWJlbEZsb2F0OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdiaXpkb2MtZmlsZS11cGxvYWQnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICB9XHJcbiAgcHJvbXB0KCkge1xyXG4gICAgdGhpcy5fcHJvbXB0KCkudGhlbih0aGlzLl91cGxvYWQuYmluZCh0aGlzKSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfcHJvbXB0KG9wdGlvbnM/OiB7IG11bHRpcGxlOiBib29sZWFuLCBhY2NlcHQ/OiBzdHJpbmcgfSk6IFByb21pc2U8RmlsZSB8IEZpbGVbXT4ge1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuYWNjZXB0KSB0aGlzLmFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0O1xyXG4gICAgICBpZiAob3B0aW9ucy5tdWx0aXBsZSE9PSB1bmRlZmluZWQpIHRoaXMubXVsdGlwbGUgPSBvcHRpb25zLm11bHRpcGxlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgdGhpcy5fcGVuZGluZy5zdWJzY3JpYmUocmVzb2x2ZSk7XHJcbiAgICB9KVxyXG4gIH1cclxuICBfY2hhbmdlKGV2dDogSW5wdXRFdmVudCkge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkICYmIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IGFyciA9IFtdIGFzIEZpbGVbXTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGZpbGUgPSBmaWxlcy5pdGVtKGkpO1xyXG4gICAgICBhcnIucHVzaChmaWxlKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3BlbmRpbmcubmV4dChhcnIpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGVJdGVtKGlkOiBudW1iZXIpOiBhbnkge1xyXG4gICAgY29uc3QgYXR0YWNobWVudCA9IHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLmZpbmQoYSA9PiBhLmlkID09PSBpZCksXHJcbiAgICAgIGxvZyA9IHRoaXMuX21vZGVsLmxvZy5maWx0ZXIobCA9PiBsLmZpbGVJZCA9PSBhdHRhY2htZW50LmlkICYmIGwudXNlcklkID09IHRoaXMuX3Nlc3Npb24udXNlcklkKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmF0dGFjaG1lbnQsXHJcbiAgICAgIGhhc1ByZXZpZXc6IEF0dGFjaG1lbnRJbmZvLmV4aXN0cyhhdHRhY2htZW50LmNvbnRlbnRUeXBlKSxcclxuICAgICAgaXNJbWFnZTogQXR0YWNobWVudEluZm8uaXNJbWFnZShhdHRhY2htZW50LmNvbnRlbnRUeXBlKSxcclxuICAgICAgZmlsZUV4dDogQXR0YWNobWVudEluZm8uZmlsZUV4dChhdHRhY2htZW50LmZpbGVOYW1lKSxcclxuICAgICAgdXJsOiB0aGlzLl9zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcclxuICAgICAgICB0aGlzLl9tYWlsYm94LmZvcm1hdERvd25sb2FkVXJsKHRoaXMuX21vZGVsLmRvY3VtZW50SWQsIGF0dGFjaG1lbnQuaWQpKSxcclxuICAgICAgICBjaGVja2VkT3V0OlxyXG4gICAgICAgICAgKGF0dGFjaG1lbnQubW9kZSAmIEF0dGFjaG1lbnRNb2RlLkNoZWNrZWRPdXQpID09IEF0dGFjaG1lbnRNb2RlLkNoZWNrZWRPdXQgJiZcclxuICAgICAgICAgICAgYXR0YWNobWVudC5ob2xkaW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkID9cclxuICAgICAgICAgICAgbG9nLnJldmVyc2UoKS5maW5kKGwgPT4gbC50eXBlID09PSAnQ2hlY2tPdXQnKS50aW1lIDogbnVsbFxyXG4gICAgfSBhcyBBdHRhY2htZW50RXh0cmE7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VwbG9hZChmaWxlczogRmlsZVtdKSB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICBsZXQgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3gudXBsb2FkKHRoaXMuX21vZGVsLmlkLCB0aGlzLl9tb2RlbC5mb3JtSWQsIHRoaXMuX21vZGVsLnZlcnNpb24sXHJcbiAgICAgICAgW2ZpbGVdLCB7IGlzUHJpdmF0ZTogdHJ1ZSB9KS5cclxuICAgICAgICBwaXBlKHRhcChlID0+IHtcclxuICAgICAgICAgIC8vICBpZiAoZS5wcm9ncmVzcykge1xyXG5cclxuICAgICAgICAgIC8vICB9XHJcbiAgICAgICAgfSksIG1hcChlID0+IGVbMF0pKTtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2lucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgY29uc3QgaWRzID0gW107XHJcbiAgICAgIGlmICghdGhpcy5pdGVtcykgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgICBlLmZvckVhY2goYSA9PiB7XHJcbiAgICAgICAgaWRzLnB1c2goYS5pZCk7XHJcbiAgICAgICAgdGhpcy5fbW9kZWwuYXR0YWNobWVudHMucHVzaChhKTtcclxuICAgICAgICB0aGlzLml0ZW1zLnB1c2godGhpcy5fY3JlYXRlSXRlbShhLmlkKSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IGlkcyA6IGlkc1swXTtcclxuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfSwgZSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fcGVuZGluZy5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiBtYXQtYnV0dG9uICpuZ0lmPVwiIWl0ZW1zOyBlbHNlIHByZXZpZXdcIiAoY2xpY2spPVwicHJvbXB0KClcIj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e2ljb259fTwvbWF0LWljb24+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXQtaDNcIj57e3BsYWNlaG9sZGVyfX08L3NwYW4+XHJcbjwvYnV0dG9uPlxyXG48aW5wdXQgdHlwZT1cImZpbGVcIiAjaW5wdXRcclxuICAgICAgIFthY2NlcHRdPWFjY2VwdCBbbXVsdGlwbGVdPW11bHRpcGxlIChjaGFuZ2UpPSdfY2hhbmdlKCRldmVudCknIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcbjxuZy10ZW1wbGF0ZSAjcHJldmlldz5cclxuICA8ZGl2ICpuZ0Zvcj0nbGV0IGEgb2YgaXRlbXMnIGNsYXNzPVwiYXR0YWNobWVudC1pdGVtXCJcclxuICAgICAgIFtjbGFzcy5kZWxldGVkXT1cImEuZGVsZXRlZFwiIFtjbGFzcy5mYWlsZWRdPVwiYS5mYWlsZWRcIlxyXG4gICAgICAgW3Byb2dyZXNzSW5kaWNhdG9yXT1cImEucHJvZ3Jlc3NcIj5cclxuICAgIDxpbWcgKm5nSWY9XCJhLmlzSW1hZ2VcIiBbc3JjXT1cImEudXJsXCIgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KGEpXCIgaGVpZ2h0PVwiODBcIiBjbGFzcz1cImZpbGUtcHJldmlld1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cImEuaGFzUHJldmlldyAmJiAhYS5pc0ltYWdlXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImZpbGUtcHJldmlld1wiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlblByZXZpZXcoYSlcIiBbYml6ZG9jVG9vbHRpcF09XCInUHJldmlldyd8dHJhbnNsYXRlXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmZpbmRfaW5fcGFnZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxzcGFuPi57e2EuZmlsZUV4dH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1vdmVybGF5IHJvd1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZpbGVuYW1lXCI+e3thLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJvcHRpb25zXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInT3B0aW9ucycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtbWVudSAjbWVudT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhLmZhaWxlZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5FZGl0KGEpICYmICFhLmZhaWxlZFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhLmNoZWNrZWRPdXRcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGVja091dChhKVwiPnt7XCJDaGVja091dFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwcm9tcHQoKVwiPnt7XCJBZGRcIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hlY2tJbihhKVwiICpuZ0lmPVwiYS5jaGVja2VkT3V0XCI+e3tcIkNoZWNrSW5cIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZChhKVwiPnt7XCJEb3dubG9hZFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5QcmV2aWV3KGEpXCIgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KGEpXCI+PG1hdC1pY29uPmxhbmRzY2FwZTwvbWF0LWljb24+IHt7XCJQcmV2aWV3XCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNWZXJzaW9uKGEpXCI+XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgdiBvZiBnZXRWZXJzaW9ucyhhKVwiIChjbGljayk9XCJwcmV2aWV3T3JEb3dubG9hZCh2KVwiPnt7di50aW1lIHwgIGFtQ2FsZW5kYXJ9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5FZGl0KGEpXCI+XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGlzY2FyZChhKVwiPnt7XCJEaXNjYXJkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjYW5jZWwoYSlcIiAqbmdJZj1cImEuZmFpbGVkXCI+e3tcIkNhbmNlbFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9jb250cm9scy9maWxlLmlucHV0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbnRyb2xzL2ZpbGUuaW5wdXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFtQixjQUFjLEVBQStCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEcsT0FBTyxFQUFjLGNBQWMsRUFBa0IsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLdkUsTUFBTSxjQUFjLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLFlBQVksRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFFLENBQUM7QUFRNUYsTUFBTSxPQUNFLFNBQVM7SUF3QmYsWUFDVSxnQkFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsVUFBd0IsRUFDeEIsZUFBK0IsRUFDL0IsVUFBNEIsRUFDNUIsUUFBd0IsRUFDeEIsR0FBa0Is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QkFPTyxXQUFXO3NCQUF2QixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBUWdDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXR0YWNobWVudEluZm8gfSBmcm9tICcuLi9pbmZvL2F0dGFjaG1lbnQtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudEV4dHJhLCBET0NVTUVOVF9NT0RFTCwgTWFpbGJveFNlcnZpY2UsIFVwbG9hZEV2ZW50IH0gZnJvbSAnLi4vbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudCwgQXR0YWNobWVudE1vZGUsIFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgRVhURU5ERURfSUNPTlMgPSB7ICd4bHN4JzogJ2V4Y2VsJywgJ2RvY3gnOiAnd29yZCcsICdwcHR4JzoncG93ZXJwb2ludCcsJ3BkZic6J3BkZicgfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZmlsZS5pbnB1dC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZmlsZS5pbnB1dC5zY3NzJ10sXHJcbiAgaG9zdDogeyBjbGFzczogJ2ZpbGUtZHJvcGFibGUnIH0sXHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZmlsZS11cGxvYWQnXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEZpbGVJbnB1dCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8bnVtYmVyIHwgbnVtYmVyW10+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1maWxlLXVwbG9hZC0ke0ZpbGVJbnB1dC5uZXh0SWQrK31gO1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfbXVsdGlwbGUgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodmFsdWUpIHtcclxuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICB9XHJcbiAgQElucHV0KCkgYWNjZXB0ID0gbnVsbDtcclxuICBASW5wdXQoKSBpY29uID0gJ3B1Ymxpc2gnO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgX2lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gIGl0ZW1zOiBBdHRhY2htZW50RXh0cmFbXTtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueTtcclxuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyIHwgbnVtYmVyW107XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ0Ryb3AgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BlbmRpbmcgPSBuZXcgU3ViamVjdDxGaWxlW10+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kcm9wYWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBfYXR0YWNobWVudEluZm86IEF0dGFjaG1lbnRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgQEluamVjdChET0NVTUVOVF9NT0RFTCkgcHJpdmF0ZSBfbW9kZWw6IFJlY2lwaWVudE1vZGVsPGFueT4sXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcbiAgaGFzVmVyc2lvbihpdGVtOiBBdHRhY2htZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmluZChhID0+IGEuZmlsZU5hbWUgPT09IGl0ZW0uZmlsZU5hbWUgJiYgYS5pZCAhPT0gaXRlbS5pZCkgIT0gbnVsbDtcclxuICB9XHJcbiAgZ2V0VmVyc2lvbnMoaXRlbTogQXR0YWNobWVudCk6IEF0dGFjaG1lbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwuYXR0YWNobWVudHMuZmlsdGVyKGEgPT4gYS5maWxlTmFtZSA9PT0gaXRlbS5maWxlTmFtZSAmJiBhLmlkICE9PSBpdGVtLmlkKTtcclxuICB9XHJcbiAgZG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBsb2NhdGlvbi5ocmVmID0gdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbC5kb2N1bWVudElkLCBpdGVtLmlkKTtcclxuICAgIChpdGVtIGFzIEF0dGFjaG1lbnRFeHRyYSkudmlld2VkID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgcHJldmlld09yRG93bmxvYWQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBpZiAodGhpcy5jYW5QcmV2aWV3KGl0ZW0pKVxyXG4gICAgICB0aGlzLm9wZW5QcmV2aWV3KGl0ZW0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmRvd25sb2FkKGl0ZW0pO1xyXG4gIH1cclxuICBjYW5QcmV2aWV3KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEF0dGFjaG1lbnRJbmZvLmV4aXN0cyhpdGVtLmNvbnRlbnRUeXBlKTtcclxuICB9XHJcbiAgY2FuRWRpdChpdGVtOiBBdHRhY2htZW50RXh0cmEpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5fbW9kZWwuY29tcGxldGVkICYmIGl0ZW0udXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkICYmICFpdGVtLmRlbGV0ZWQ7XHJcbiAgfVxyXG4gIG9wZW5QcmV2aWV3KGl0ZW06IEF0dGFjaG1lbnRFeHRyYSkge1xyXG4gICAgdGhpcy5fYXR0YWNobWVudEluZm8ucHJldmlldyh0aGlzLl9tb2RlbCwgaXRlbS5pZCk7XHJcbiAgfVxyXG4gIGNhbmNlbChpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIHRoaXMuX21vZGVsLmF0dGFjaG1lbnRzLnJlbW92ZShpdGVtKTtcclxuICB9XHJcbiAgY2hlY2tJbihpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIGNvbnN0IGFjY2VwdCA9IGl0ZW0uaXNJbWFnZSA/ICdpbWFnZS8qJyA6XHJcbiAgICAgICcuJyArIEF0dGFjaG1lbnRJbmZvLmZpbGVFeHQoaXRlbS5maWxlTmFtZSkgKyAnLCcgKyBpdGVtLmNvbnRlbnRUeXBlO1xyXG4gICAgdGhpcy5fcHJvbXB0KHsgbXVsdGlwbGU6IGZhbHNlLCBhY2NlcHQgfSkudGhlbihmaWxlcyA9PiB7XHJcbiAgICAgIC8vaWYgKCFmaWxlc1swXS5uYW1lLnN0YXJ0c1dpdGgoaXRlbS5maWxlTmFtZSkpIHtcclxuICAgICAgLy8gIHRoaXMuX3NiLmVycm9yKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrSW5NYXRjaEVycicsIGl0ZW0uZmlsZU5hbWUpKTtcclxuICAgICAgLy8gIHJldHVybjtcclxuICAgICAgLy99XHJcbiAgICAgIHRoaXMuX21haWxib3guY2hlY2tJbih0aGlzLl9tb2RlbC5pZCwgdGhpcy5fbW9kZWwudmVyc2lvbiwgaXRlbS5pZCwgZmlsZXNbMF0pLnN1YnNjcmliZShhID0+IHtcclxuICAgICAgICAvL2lmIChhIGluc3RhbmNlb2YgVXBsb2FkRXZlbnQpIHtcclxuICAgICAgICAvLyAgT2JqZWN0LmFzc2lnbihpdGVtLCB7XHJcbiAgICAgICAgLy8gICAgcHJvZ3Jlc3M6IGEubG9hZGVkIC8gYS50b3RhbFxyXG4gICAgICAgIC8vICB9KTtcclxuICAgICAgICAvLyAgcmV0dXJuO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oaXRlbSwgYSwgeyBwcm9ncmVzczogbnVsbCwgY2hlY2tlZE91dDogbnVsbCB9KTtcclxuICAgICAgICB0aGlzLl9zYi50b2FzdCh0aGlzLl90cmFuc2xhdGUuZ2V0KCdDaGVja2VkSW4nLCBpdGVtLmZpbGVOYW1lKSk7XHJcbiAgICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gICAgfVxyXG4gICAgKVxyXG4gIH1cclxuICBjaGVja091dChpdGVtOiBBdHRhY2htZW50RXh0cmEpIHtcclxuICAgIHRoaXMuX21haWxib3guY2hlY2tPdXQodGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLnZlcnNpb24sIGl0ZW0uaWQpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGl0ZW0uY2hlY2tlZE91dCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGRpc2NhcmQoaXRlbTogQXR0YWNobWVudEV4dHJhKSB7XHJcbiAgICBjb25zdCB0YXNrID0gKCkgPT5cclxuICAgICAgdGhpcy5fbWFpbGJveC5yZW1vdmVhdHRhY2htZW50KHRoaXMuX21vZGVsLmlkLCBpdGVtLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGl0ZW0uZGVsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMucmVtb3ZlKGl0ZW0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoKVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXMubWFwKGkgPT4gaS5pZCk7XHJcbiAgICAgICAgICBlbHNlIHRoaXMuaXRlbXMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuaXRlbXMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5yZW1vdmUoaXRlbSk7XHJcbiAgICAgIH0sICgpID0+XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICBpZiAodGhpcy5fbW9kZWwuZHJhZnQpXHJcbiAgICAgIHRhc2soKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fc2IuYXNrKCdEZWxldGVGaWxlQXNrJywgJ0RlbGV0ZUZpbGUnLCB7IGNvbG9yOiAnd2FybicgfSkuc3Vic2NyaWJlKG9rID0+XHJcbiAgICAgICAgb2sgJiYgdGFzaygpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kcm9wYWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX2RyYWdEcm9wLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgIGlmIChvaykgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2RyYWcnKTtcclxuICAgICAgZWxzZSBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZycpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyKSB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0RyYWdGaWxlJyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmRyb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURvY3VtZW50RHJvcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGV2ZW50LmRhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IGZpbGVzID0gW10gYXMgRmlsZVtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBmaWxlID0gaXRlbXNbaV0uZ2V0QXNGaWxlKCk7XHJcbiAgICAgIGZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjaGVja2VkT3V0ID0gdGhpcy5pdGVtcy5maWx0ZXIoaSA9PiBpLmNoZWNrZWRPdXQpO1xyXG4gICAgaWYgKHRoaXMuaXRlbXMgJiYgY2hlY2tlZE91dC5sZW5ndGgpIHtcclxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBjaGVja2VkT3V0KSB7XHJcbiAgICAgICAgbGV0IGZpbGUgPSBmaWxlcy5maW5kKGYgPT4gZi5uYW1lLnN0YXJ0c1dpdGgoaXRlbS5maWxlTmFtZSkpO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBsZXQgb2JzZXJ2YWJsZSA9IHRoaXMuX21haWxib3guY2hlY2tJbih0aGlzLl9tb2RlbC5pZCwgdGhpcy5fbW9kZWwudmVyc2lvbiwgaXRlbS5pZCwgZmlsZSkucGlwZSh0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgIC8vT2JqZWN0LmFzc2lnbihpdGVtLCBhLCB7IHByb2dyZXNzOiBudWxsIH0pO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KFxyXG4gICAgICAgICAgY2hlY2tlZE91dC5sZW5ndGggPiAxID8gdGhpcy5fdHJhbnNsYXRlLmdldCgnQ2hlY2tlZEluTicsIGNoZWNrZWRPdXQubGVuZ3RoKSA6XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0NoZWNrZWRJbicsIGNoZWNrZWRPdXRbMF0uZmlsZU5hbWUpKSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3VwbG9hZChmaWxlcyk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2RyYWdEcm9wLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2RyYWdEcm9wLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZSh2YWw6IG51bWJlciB8IG51bWJlcltdKTogdm9pZCB7XHJcbiAgICBpZiAoIXZhbCkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gbnVsbDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaXNBcnJheSh2YWwpKVxyXG4gICAgICB0aGlzLml0ZW1zID1cclxuICAgICAgICB2YWwubWFwKGkgPT4gdGhpcy5fY3JlYXRlSXRlbShpKSk7XHJcbiAgICBlbHNlIHRoaXMuaXRlbXNbdGhpcy5fY3JlYXRlSXRlbSh2YWwpXTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBudW1iZXIgfCBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IG51bWJlciB8IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGZvY3VzZWQ6IGJvb2xlYW47XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuaXRlbXM7IH1cclxuICBzaG91bGRMYWJlbEZsb2F0OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdiaXpkb2MtZmlsZS11cGxvYWQnO1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgZGVzY3JpYmVkQnkgPSAnJztcclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICB9XHJcbiAgcHJvbXB0KCkge1xyXG4gICAgdGhpcy5fcHJvbXB0KCkudGhlbih0aGlzLl91cGxvYWQuYmluZCh0aGlzKSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfcHJvbXB0KG9wdGlvbnM/OiB7IG11bHRpcGxlOiBib29sZWFuLCBhY2NlcHQ/OiBzdHJpbmcgfSk6IFByb21pc2U8RmlsZSB8IEZpbGVbXT4ge1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgaWYgKG9wdGlvbnMuYWNjZXB0KSB0aGlzLmFjY2VwdCA9IG9wdGlvbnMuYWNjZXB0O1xyXG4gICAgICBpZiAob3B0aW9ucy5tdWx0aXBsZSAhPT0gdW5kZWZpbmVkKSB0aGlzLm11bHRpcGxlID0gb3B0aW9ucy5tdWx0aXBsZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgIHRoaXMuX3BlbmRpbmcuc3Vic2NyaWJlKHJlc29sdmUpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgX2NoYW5nZShldnQ6IElucHV0RXZlbnQpIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGV2dC5zcmNFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBhcnIgPSBbXSBhcyBGaWxlW107XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWxlID0gZmlsZXMuaXRlbShpKTtcclxuICAgICAgYXJyLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wZW5kaW5nLm5leHQoYXJyKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlSXRlbShpZDogbnVtYmVyKTogYW55IHtcclxuICAgIGNvbnN0IGF0dGFjaG1lbnQgPSB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5maW5kKGEgPT4gYS5pZCA9PT0gaWQpLFxyXG4gICAgICBsb2cgPSB0aGlzLl9tb2RlbC5sb2cuZmlsdGVyKGwgPT4gbC5maWxlSWQgPT0gYXR0YWNobWVudC5pZCAmJiBsLnVzZXJJZCA9PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCksXHJcbiAgICAgIGZpbGVFeHQgPSBBdHRhY2htZW50SW5mby5maWxlRXh0KGF0dGFjaG1lbnQuZmlsZU5hbWUpLFxyXG4gICAgICBpY29uID0gRVhURU5ERURfSUNPTlNbZmlsZUV4dF07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5hdHRhY2htZW50LFxyXG4gICAgICBoYXNQcmV2aWV3OiBBdHRhY2htZW50SW5mby5leGlzdHMoYXR0YWNobWVudC5jb250ZW50VHlwZSksXHJcbiAgICAgIGlzSW1hZ2U6IEF0dGFjaG1lbnRJbmZvLmlzSW1hZ2UoYXR0YWNobWVudC5jb250ZW50VHlwZSksXHJcbiAgICAgIGZpbGVFeHQsXHJcbiAgICAgIGljb24sXHJcbiAgICAgIHVybDogdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoXHJcbiAgICAgICAgdGhpcy5fbWFpbGJveC5mb3JtYXREb3dubG9hZFVybCh0aGlzLl9tb2RlbC5kb2N1bWVudElkLCBhdHRhY2htZW50LmlkKSksXHJcbiAgICAgIGNoZWNrZWRPdXQ6XHJcbiAgICAgICAgKGF0dGFjaG1lbnQubW9kZSAmIEF0dGFjaG1lbnRNb2RlLkNoZWNrZWRPdXQpID09IEF0dGFjaG1lbnRNb2RlLkNoZWNrZWRPdXQgJiZcclxuICAgICAgICAgIGF0dGFjaG1lbnQuaG9sZGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCA/XHJcbiAgICAgICAgICBsb2cucmV2ZXJzZSgpLmZpbmQobCA9PiBsLnR5cGUgPT09ICdDaGVja091dCcpLnRpbWUgOiBudWxsXHJcbiAgICB9IGFzIEF0dGFjaG1lbnRFeHRyYTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdXBsb2FkKGZpbGVzOiBGaWxlW10pIHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XHJcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgIGxldCBvYnNlcnZhYmxlID0gdGhpcy5fbWFpbGJveC51cGxvYWQodGhpcy5fbW9kZWwuaWQsIHRoaXMuX21vZGVsLmZvcm1JZCwgdGhpcy5fbW9kZWwudmVyc2lvbixcclxuICAgICAgICBbZmlsZV0sIHsgaXNQcml2YXRlOiB0cnVlIH0pLlxyXG4gICAgICAgIHBpcGUodGFwKGUgPT4ge1xyXG4gICAgICAgICAgLy8gIGlmIChlLnByb2dyZXNzKSB7XHJcblxyXG4gICAgICAgICAgLy8gIH1cclxuICAgICAgICB9KSwgbWFwKGUgPT4gZVswXSkpO1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICBjb25zdCBpZHMgPSBbXTtcclxuICAgICAgaWYgKCF0aGlzLml0ZW1zKSB0aGlzLml0ZW1zID0gW107XHJcbiAgICAgIGUuZm9yRWFjaChhID0+IHtcclxuICAgICAgICBpZHMucHVzaChhLmlkKTtcclxuICAgICAgICB0aGlzLl9tb2RlbC5hdHRhY2htZW50cy5wdXNoKGEpO1xyXG4gICAgICAgIHRoaXMuaXRlbXMucHVzaCh0aGlzLl9jcmVhdGVJdGVtKGEuaWQpKTtcclxuICAgICAgfSlcclxuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLm11bHRpcGxlID8gaWRzIDogaWRzWzBdO1xyXG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9LCBlID0+IHtcclxuICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RyYWdEcm9wLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9wZW5kaW5nLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCIhaXRlbXM7IGVsc2UgcHJldmlld1wiIChjbGljayk9XCJwcm9tcHQoKVwiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cImZpbGxlZFwiPnt7aWNvbn19PC9tYXQtaWNvbj5cclxuICA8c3BhbiBjbGFzcz1cIm1hdC1oM1wiPnt7cGxhY2Vob2xkZXJ9fTwvc3Bhbj5cclxuPC9idXR0b24+XHJcbjxpbnB1dCB0eXBlPVwiZmlsZVwiICNpbnB1dFxyXG4gICAgICAgW2FjY2VwdF09YWNjZXB0IFttdWx0aXBsZV09bXVsdGlwbGUgKGNoYW5nZSk9J19jaGFuZ2UoJGV2ZW50KScgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cclxuPG5nLXRlbXBsYXRlICNwcmV2aWV3PlxyXG4gIDxkaXYgKm5nRm9yPSdsZXQgYSBvZiBpdGVtcycgY2xhc3M9XCJhdHRhY2htZW50LWl0ZW1cIlxyXG4gICAgICAgW2NsYXNzLmRlbGV0ZWRdPVwiYS5kZWxldGVkXCIgW2NsYXNzLmZhaWxlZF09XCJhLmZhaWxlZFwiXHJcbiAgICAgICBbcHJvZ3Jlc3NJbmRpY2F0b3JdPVwiYS5wcm9ncmVzc1wiPlxyXG4gICAgPGltZyAqbmdJZj1cImEuaXNJbWFnZVwiIFtzcmNdPVwiYS51cmxcIiAoY2xpY2spPVwib3BlblByZXZpZXcoYSlcIiBoZWlnaHQ9XCI4MFwiIGNsYXNzPVwiZmlsZS1wcmV2aWV3XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYS5oYXNQcmV2aWV3ICYmICFhLmlzSW1hZ2VcIiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwiZmlsZS1wcmV2aWV3XCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuUHJldmlldyhhKVwiIFtiaXpkb2NUb29sdGlwXT1cIidQcmV2aWV3J3x0cmFuc2xhdGVcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+ZmluZF9pbl9wYWdlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPHNwYW4+Lnt7YS5maWxlRXh0fX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtaWNvbiAqbmdJZj1cImEuaWNvblwiIFtzdmdJY29uXT1cImEuaWNvblwiPjwvbWF0LWljb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1vdmVybGF5IHJvd1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZpbGVuYW1lXCI+e3thLmZpbGVOYW1lfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJvcHRpb25zXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInT3B0aW9ucycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtbWVudSAjbWVudT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhLmZhaWxlZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5FZGl0KGEpICYmICFhLmZhaWxlZFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhLmNoZWNrZWRPdXRcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGVja091dChhKVwiPnt7XCJDaGVja091dFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwcm9tcHQoKVwiPnt7XCJBZGRcIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hlY2tJbihhKVwiICpuZ0lmPVwiYS5jaGVja2VkT3V0XCI+e3tcIkNoZWNrSW5cIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZChhKVwiPnt7XCJEb3dubG9hZFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nSWY9XCJjYW5QcmV2aWV3KGEpXCIgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KGEpXCI+PG1hdC1pY29uPmxhbmRzY2FwZTwvbWF0LWljb24+IHt7XCJQcmV2aWV3XCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNWZXJzaW9uKGEpXCI+XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgdiBvZiBnZXRWZXJzaW9ucyhhKVwiIChjbGljayk9XCJwcmV2aWV3T3JEb3dubG9hZCh2KVwiPnt7di50aW1lIHwgIGFtQ2FsZW5kYXJ9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5FZGl0KGEpXCI+XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGlzY2FyZChhKVwiPnt7XCJEaXNjYXJkXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjYW5jZWwoYSlcIiAqbmdJZj1cImEuZmFpbGVkXCI+e3tcIkNhbmNlbFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==