@colijnit/transaction 255.1.36 → 255.1.37

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/bundles/colijnit-transaction.umd.js +234 -30
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +10 -8
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +11 -9
  6. package/esm2015/lib/component/save-cancel-buttons/save-cancel-buttons.component.js +102 -0
  7. package/esm2015/lib/component/save-cancel-buttons/save-cancel-buttons.module.js +24 -0
  8. package/esm2015/lib/component/transaction/transaction.component.js +35 -7
  9. package/esm2015/lib/component/transaction/transaction.module.js +4 -2
  10. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-base.component.js +2 -2
  11. package/esm2015/lib/service/pending-reason.service.js +5 -3
  12. package/esm2015/lib/service/transaction-base.service.js +19 -3
  13. package/esm2015/lib/service/transaction-connector-adapter.service.js +4 -1
  14. package/esm2015/lib/service/transaction-connector.service.js +4 -1
  15. package/esm2015/lib/service/transaction-event.service.js +4 -2
  16. package/esm2015/lib/service/transaction.service.js +54 -12
  17. package/esm2015/lib/transaction-version.js +3 -3
  18. package/fesm2015/colijnit-transaction.js +229 -17
  19. package/fesm2015/colijnit-transaction.js.map +1 -1
  20. package/lib/component/save-cancel-buttons/save-cancel-buttons.component.d.ts +28 -0
  21. package/lib/component/save-cancel-buttons/save-cancel-buttons.module.d.ts +2 -0
  22. package/lib/component/save-cancel-buttons/style/_layout.scss +41 -0
  23. package/lib/component/save-cancel-buttons/style/_material-definition.scss +15 -0
  24. package/lib/component/save-cancel-buttons/style/_theme.scss +42 -0
  25. package/lib/component/save-cancel-buttons/style/material.scss +4 -0
  26. package/lib/component/transaction/transaction.component.d.ts +13 -3
  27. package/lib/service/transaction-base.service.d.ts +4 -1
  28. package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
  29. package/lib/service/transaction-connector.service.d.ts +1 -0
  30. package/lib/service/transaction-event.service.d.ts +3 -1
  31. package/lib/service/transaction.service.d.ts +20 -19
  32. package/package.json +5 -5
@@ -0,0 +1,102 @@
1
+ import { Component, ElementRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { IconCacheService } from '../../service/icon-cache.service';
3
+ import { Icon } from '../../enum/icon.enum';
4
+ import { TransactionEventService } from '../../service/transaction-event.service';
5
+ export class SaveCancelButtonsComponent {
6
+ constructor(iconCacheService, _transactionEventService) {
7
+ this.iconCacheService = iconCacheService;
8
+ this._transactionEventService = _transactionEventService;
9
+ this.icons = Icon;
10
+ this.showLabels = true;
11
+ this.movable = false;
12
+ this.show = false;
13
+ this._mouseDown = false;
14
+ // @HostBinding('style.top.px')
15
+ this._top = 0;
16
+ // @HostBinding('style.left.px')
17
+ this._left = 0;
18
+ this._subs = [];
19
+ this._subs.push(this._transactionEventService.transactionDirty.subscribe((dirty) => this.show = dirty));
20
+ }
21
+ showClass() {
22
+ return true;
23
+ }
24
+ ngOnDestroy() {
25
+ this._subs.forEach(s => s.unsubscribe());
26
+ this.saveCancelButtonsWrapper = undefined;
27
+ }
28
+ handleMouseDown(event) {
29
+ this._mouseDown = this.movable;
30
+ // if (this.saveCancelButtonsWrapper && this.saveCancelButtonsWrapper.nativeElement && this._mouseDown) {
31
+ // const rect = this.saveCancelButtonsWrapper.nativeElement.getBoundingClientRect();
32
+ // this._top = rect.top;
33
+ // this._left = rect.left;
34
+ // }
35
+ }
36
+ handleMouseUp(event) {
37
+ this._mouseDown = false;
38
+ }
39
+ handleMouseMove(event) {
40
+ if (this._mouseDown) {
41
+ // this._top = this._top + event.movementY;
42
+ // this._left = this._left + event.movementX;
43
+ }
44
+ }
45
+ handleSaveClick(event) {
46
+ event.preventDefault();
47
+ this._transactionEventService.saveTransactionClick.next();
48
+ }
49
+ handleCancelClick(event) {
50
+ event.preventDefault();
51
+ this._transactionEventService.cancelTransactionClick.next();
52
+ }
53
+ }
54
+ SaveCancelButtonsComponent.decorators = [
55
+ { type: Component, args: [{
56
+ selector: 'co-save-cancel-buttons',
57
+ template: `
58
+ <ng-container *ngIf="show">
59
+ <div class="save-cancel-buttons-wrapper" #saveCancelButtonsWrapper
60
+ [class.movable]="movable"
61
+ (mousedown)="handleMouseDown($event)"
62
+ (mouseup)="handleMouseUp($event)"
63
+ (mousemove)="handleMouseMove($event)">
64
+ <ng-container *ngIf="showLabels">
65
+ <co-button class="save-button" [label]="'SAVE' | localize" [title]="'SAVE' | localize"
66
+ [iconData]="saveIconData || iconCacheService.getIcon(icons.CheckThin)"
67
+ (onClick)="handleSaveClick($event)"></co-button>
68
+ <co-button class="cancel-button" [label]="'CANCEL' | localize" [title]="'CANCEL' | localize"
69
+ [iconData]="cancelIconData || iconCacheService.getIcon(icons.Crossskinny)"
70
+ (onClick)="handleCancelClick($event)"></co-button>
71
+ </ng-container>
72
+ <ng-container *ngIf="!showLabels">
73
+ <div class="icon-wrapper save-icon">
74
+ <co-icon [title]="'SAVE' | localize"
75
+ [iconData]="saveIconData || iconCacheService.getIcon(icons.CheckThin)"
76
+ (click)="handleSaveClick($event)"></co-icon>
77
+ </div>
78
+ <div class="icon-wrapper cancel-icon">
79
+ <co-icon [title]="'CANCEL' | localize"
80
+ [iconData]="cancelIconData || iconCacheService.getIcon(icons.Crossskinny)"
81
+ (click)="handleCancelClick($event)"></co-icon>
82
+ </div>
83
+ </ng-container>
84
+ </div>
85
+ </ng-container>
86
+ `,
87
+ encapsulation: ViewEncapsulation.None
88
+ },] }
89
+ ];
90
+ SaveCancelButtonsComponent.ctorParameters = () => [
91
+ { type: IconCacheService },
92
+ { type: TransactionEventService }
93
+ ];
94
+ SaveCancelButtonsComponent.propDecorators = {
95
+ saveCancelButtonsWrapper: [{ type: ViewChild, args: ['saveCancelButtonsWrapper', { read: ElementRef },] }],
96
+ saveIconData: [{ type: Input }],
97
+ cancelIconData: [{ type: Input }],
98
+ showLabels: [{ type: Input }],
99
+ movable: [{ type: Input }],
100
+ showClass: [{ type: HostBinding, args: ['class.co-save-cancel-buttons',] }]
101
+ };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jYW5jZWwtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9zYXZlLWNhbmNlbC1idXR0b25zL3NhdmUtY2FuY2VsLWJ1dHRvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXFDaEYsTUFBTSxPQUFPLDBCQUEwQjtJQW1DckMsWUFDUyxnQkFBa0MsRUFDakMsd0JBQWlEO1FBRGxELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQXBDM0MsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFZbkMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUczQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBT3pCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFckIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVwQywrQkFBK0I7UUFDdkIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUV6QixnQ0FBZ0M7UUFDeEIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQU1qQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUNoRyxDQUFBO0lBQ0gsQ0FBQztJQXZCTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBdUJELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxTQUFTLENBQUM7SUFDNUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFpQjtRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDL0IseUdBQXlHO1FBQ3pHLHNGQUFzRjtRQUN0RiwwQkFBMEI7UUFDMUIsNEJBQTRCO1FBQzVCLElBQUk7SUFDTixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLDJDQUEyQztZQUMzQyw2Q0FBNkM7U0FDOUM7SUFDSCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWlCO1FBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQzs7O1lBL0dGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0Q08sZ0JBQWdCO1lBRWhCLHVCQUF1Qjs7O3VDQXdDNUIsU0FBUyxTQUFDLDBCQUEwQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTsyQkFHMUQsS0FBSzs2QkFHTCxLQUFLO3lCQUdMLEtBQUs7c0JBR0wsS0FBSzt3QkFHTCxXQUFXLFNBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1zYXZlLWNhbmNlbC1idXR0b25zJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlLWNhbmNlbC1idXR0b25zLXdyYXBwZXJcIiAjc2F2ZUNhbmNlbEJ1dHRvbnNXcmFwcGVyXHJcbiAgICAgICAgICAgICBbY2xhc3MubW92YWJsZV09XCJtb3ZhYmxlXCJcclxuICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiaGFuZGxlTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKG1vdXNldXApPVwiaGFuZGxlTW91c2VVcCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIChtb3VzZW1vdmUpPVwiaGFuZGxlTW91c2VNb3ZlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dMYWJlbHNcIj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiIFtsYWJlbF09XCInU0FWRScgfCBsb2NhbGl6ZVwiIFt0aXRsZV09XCInU0FWRScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJzYXZlSWNvbkRhdGEgfHwgaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrVGhpbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgW2xhYmVsXT1cIidDQU5DRUwnIHwgbG9jYWxpemVcIiBbdGl0bGVdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJjYW5jZWxJY29uRGF0YSB8fCBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd0xhYmVsc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlciBzYXZlLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gW3RpdGxlXT1cIidTQVZFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cInNhdmVJY29uRGF0YSB8fCBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tUaGluKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlQ2xpY2soJGV2ZW50KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlciBjYW5jZWwtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taWNvbiBbdGl0bGVdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJjYW5jZWxJY29uRGF0YSB8fCBpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKCRldmVudClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2F2ZUNhbmNlbEJ1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKCdzYXZlQ2FuY2VsQnV0dG9uc1dyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuICBwdWJsaWMgc2F2ZUNhbmNlbEJ1dHRvbnNXcmFwcGVyOiBFbGVtZW50UmVmXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNhdmVJY29uRGF0YTogU2FmZUh0bWw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNhbmNlbEljb25EYXRhOiBTYWZlSHRtbDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0xhYmVsczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1vdmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1zYXZlLWNhbmNlbC1idXR0b25zJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9tb3VzZURvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AucHgnKVxyXG4gIHByaXZhdGUgX3RvcDogbnVtYmVyID0gMDtcclxuXHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0LnB4JylcclxuICBwcml2YXRlIF9sZWZ0OiBudW1iZXIgPSAwO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkuc3Vic2NyaWJlKChkaXJ0eTogYm9vbGVhbikgPT4gdGhpcy5zaG93ID0gZGlydHkpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnNhdmVDYW5jZWxCdXR0b25zV3JhcHBlciA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vdXNlRG93biA9IHRoaXMubW92YWJsZTtcclxuICAgIC8vIGlmICh0aGlzLnNhdmVDYW5jZWxCdXR0b25zV3JhcHBlciAmJiB0aGlzLnNhdmVDYW5jZWxCdXR0b25zV3JhcHBlci5uYXRpdmVFbGVtZW50ICYmIHRoaXMuX21vdXNlRG93bikge1xyXG4gICAgLy8gICBjb25zdCByZWN0ID0gdGhpcy5zYXZlQ2FuY2VsQnV0dG9uc1dyYXBwZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIC8vICAgdGhpcy5fdG9wID0gcmVjdC50b3A7XHJcbiAgICAvLyAgIHRoaXMuX2xlZnQgPSByZWN0LmxlZnQ7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW91c2VVcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbW91c2VEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fbW91c2VEb3duKSB7XHJcbiAgICAgIC8vIHRoaXMuX3RvcCA9IHRoaXMuX3RvcCArIGV2ZW50Lm1vdmVtZW50WTtcclxuICAgICAgLy8gdGhpcy5fbGVmdCA9IHRoaXMuX2xlZnQgKyBldmVudC5tb3ZlbWVudFg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQ2xpY2submV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhbmNlbENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuY2FuY2VsVHJhbnNhY3Rpb25DbGljay5uZXh0KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SaveCancelButtonsComponent } from './save-cancel-buttons.component';
4
+ import { ButtonModule, IconModule } from '@colijnit/corecomponents_v12';
5
+ import { PipeModule } from '../../pipe/pipe.module';
6
+ export class SaveCancelButtonsModule {
7
+ }
8
+ SaveCancelButtonsModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ imports: [
11
+ CommonModule,
12
+ ButtonModule,
13
+ PipeModule,
14
+ IconModule
15
+ ],
16
+ declarations: [
17
+ SaveCancelButtonsComponent
18
+ ],
19
+ exports: [
20
+ SaveCancelButtonsComponent
21
+ ]
22
+ },] }
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1jYW5jZWwtYnV0dG9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9zYXZlLWNhbmNlbC1idXR0b25zL3NhdmUtY2FuY2VsLWJ1dHRvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBZ0JsRCxNQUFNLE9BQU8sdUJBQXVCOzs7WUFkbkMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixVQUFVO2lCQUNYO2dCQUNELFlBQVksRUFBRTtvQkFDWiwwQkFBMEI7aUJBQzNCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7aUJBQzNCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7U2F2ZUNhbmNlbEJ1dHRvbnNDb21wb25lbnR9IGZyb20gJy4vc2F2ZS1jYW5jZWwtYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSAnLi4vLi4vcGlwZS9waXBlLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNhdmVDYW5jZWxCdXR0b25zQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTYXZlQ2FuY2VsQnV0dG9uc0NvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNhdmVDYW5jZWxCdXR0b25zTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { ChangeDetectorRef, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, HostBinding, HostListener, Input, ViewEncapsulation } from '@angular/core';
3
3
  import { CustomerFullObject } from '@colijnit/relationapi/build/model/customer-full-object.bo';
4
4
  import { BaseModuleScreenConfigService } from '@colijnit/corecomponents_v12';
5
5
  import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
@@ -8,19 +8,25 @@ import { TransactionService } from '../../service/transaction.service';
8
8
  import { TransactionCfgName } from '../../enum/transaction-cfg-name.enum';
9
9
  import { TransactionConnectorService } from '../../service/transaction-connector.service';
10
10
  import { PurchaseConfirmationService } from '../../service/purchase-confirmation.service';
11
+ import { DialogService } from '../../service/dialog.service';
12
+ import { DictionaryService } from '../../service/dictionary.service';
11
13
  export class TransactionComponent {
12
- constructor(service, _transactionConnectorService, _screenConfigurationService, _changeDetector, _purchaseConfirmationService) {
14
+ constructor(service, _transactionConnectorService, _screenConfigurationService, _changeDetector, _purchaseConfirmationService, _dictionaryService, _dialogService) {
13
15
  this.service = service;
14
16
  this._transactionConnectorService = _transactionConnectorService;
15
17
  this._screenConfigurationService = _screenConfigurationService;
16
18
  this._changeDetector = _changeDetector;
17
19
  this._purchaseConfirmationService = _purchaseConfirmationService;
20
+ this._dictionaryService = _dictionaryService;
21
+ this._dialogService = _dialogService;
18
22
  this.cfgNames = TransactionCfgName;
19
23
  this.relation = new CustomerFullObject();
20
24
  this.showHeader = true;
21
25
  this.showViewModeButtons = true;
22
26
  this.showQuickAccess = true;
23
27
  this.showButtonBar = true;
28
+ this.showSaveCancelLabels = false;
29
+ this.saveCancelMovable = false;
24
30
  this.screenConfigLoaded = false;
25
31
  }
26
32
  set confirmationAnalysisId(value) {
@@ -51,13 +57,21 @@ export class TransactionComponent {
51
57
  showClass() {
52
58
  return true;
53
59
  }
60
+ checkTransaction() {
61
+ return this._checkTransactionDirty();
62
+ }
63
+ checkRollBack() {
64
+ if (this.service.transactionDirty && this.service.manualSaveParam) {
65
+ this.service.rollbackBeacon();
66
+ }
67
+ }
54
68
  ngOnChanges(changes) {
55
69
  if (changes && changes.hasOwnProperty('confirmationAnalysisId')) {
56
70
  this._changeDetector.markForCheck();
57
71
  }
58
72
  }
59
- addExternalOrderLines(request) {
60
- this.service.addExternalCatalogArticle(request);
73
+ _checkTransactionDirty() {
74
+ return !(this.service.transactionDirty && this.service.manualSaveParam);
61
75
  }
62
76
  _getTransaction() {
63
77
  if (this.transactionKind) {
@@ -88,6 +102,12 @@ TransactionComponent.decorators = [
88
102
  { type: Component, args: [{
89
103
  selector: 'co-transaction',
90
104
  template: `
105
+ <co-save-cancel-buttons *ngIf="service.manualSaveParam"
106
+ [saveIconData]="saveIconData"
107
+ [cancelIconData]="cancelIconData"
108
+ [showLabels]="showSaveCancelLabels"
109
+ [movable]="saveCancelMovable"
110
+ ></co-save-cancel-buttons>
91
111
  <co-transaction-internal *ngIf="screenConfigLoaded"
92
112
  [(relation)]="relation"
93
113
  [showHeader]="showHeader"
@@ -109,7 +129,9 @@ TransactionComponent.ctorParameters = () => [
109
129
  { type: TransactionConnectorService },
110
130
  { type: TransactionScreenConfigurationService },
111
131
  { type: ChangeDetectorRef },
112
- { type: PurchaseConfirmationService }
132
+ { type: PurchaseConfirmationService },
133
+ { type: DictionaryService },
134
+ { type: DialogService }
113
135
  ];
114
136
  TransactionComponent.propDecorators = {
115
137
  relation: [{ type: Input }],
@@ -121,6 +143,12 @@ TransactionComponent.propDecorators = {
121
143
  showViewModeButtons: [{ type: Input }],
122
144
  showQuickAccess: [{ type: Input }],
123
145
  showButtonBar: [{ type: Input }],
124
- showClass: [{ type: HostBinding, args: ['class.co-transaction',] }]
146
+ saveIconData: [{ type: Input }],
147
+ cancelIconData: [{ type: Input }],
148
+ showSaveCancelLabels: [{ type: Input }],
149
+ saveCancelMovable: [{ type: Input }],
150
+ showClass: [{ type: HostBinding, args: ['class.co-transaction',] }],
151
+ checkTransaction: [{ type: HostListener, args: ['window:beforeunload',] }],
152
+ checkRollBack: [{ type: HostListener, args: ['window:unload',] }]
125
153
  };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTRCLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBRTdGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQW9CeEYsTUFBTSxPQUFPLG9CQUFvQjtJQWtFN0IsWUFDVyxPQUEyQixFQUMxQiw0QkFBeUQsRUFDekQsMkJBQWtFLEVBQ2xFLGVBQWtDLEVBQ2xDLDRCQUF5RDtRQUoxRCxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxQixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQTZCO1FBQ3pELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBdUM7UUFDbEUsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBNkI7UUF0RXJELGFBQVEsR0FBOEIs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LEVBQUU7WUFDN0csSUFBSSxDQUFDLDJCQUEyQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtZQUMvRyxJQUFJLENBQUMsMkJBQTJCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDbEgsc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7O1lBL0hKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7S0FVVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsRUFBQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsV0FBVyxFQUFFLHFDQUFxQyxFQUFDO2lCQUMvRjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN4Qzs7O1lBeEJPLGtCQUFrQjtZQUdsQiwyQkFBMkI7WUFMM0IscUNBQXFDO1lBTHJDLGlCQUFpQjtZQVlqQiwyQkFBMkI7Ozt1QkF1QjlCLEtBQUs7cUNBR0wsS0FBSzsyQkFVTCxLQUFLOzhCQUdMLEtBQUs7NEJBWUwsS0FBSzt5QkFZTCxLQUFLO2tDQUdMLEtBQUs7OEJBR0wsS0FBSzs0QkFHTCxLQUFLO3dCQUdMLFdBQVcsU0FBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHt0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtFeHRlcm5hbENhdGFsb2dBZGRBcnRpY2xlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLWNhdGFsb2ctYWRkLWFydGljbGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtQb3NPcmRlckRhdGF9IGZyb20gJy4uLy4uL21vZGVsL3Bvcy1vcmRlci1kYXRhJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWludGVybmFsICpuZ0lmPVwic2NyZWVuQ29uZmlnTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJzaG93SGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dRdWlja0FjY2Vzc109XCJzaG93UXVpY2tBY2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0J1dHRvbkJhcl09XCJzaG93QnV0dG9uQmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWaWV3TW9kZUJ1dHRvbnNdPVwic2hvd1ZpZXdNb2RlQnV0dG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maXJtYXRpb25BbmFseXNpc0lkXT1cImNvbmZpcm1hdGlvbkFuYWx5c2lzSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taW50ZXJuYWw+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGNvbmZpcm1hdGlvbkFuYWx5c2lzSWQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb25maXJtYXRpb25BbmFseXNpc0lkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbktpbmQodmFsdWU6IFRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbktpbmQgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uS2luZCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uS2luZCgpOiBUcmFuc2FjdGlvbktpbmQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbktpbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25Ocih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uTnIgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTnIgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fZ2V0VHJhbnNhY3Rpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvbk5yKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTnI7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SGVhZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dWaWV3TW9kZUJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1F1aWNrQWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dCdXR0b25CYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24nKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfY29uZmlybWF0aW9uQW5hbHlzaXNJZDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbk5yOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmhhc093blByb3BlcnR5KCdjb25maXJtYXRpb25BbmFseXNpc0lkJykpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRFeHRlcm5hbE9yZGVyTGluZXMocmVxdWVzdDogRXh0ZXJuYWxDYXRhbG9nQWRkQXJ0aWNsZVJlcXVlc3QpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuYWRkRXh0ZXJuYWxDYXRhbG9nQXJ0aWNsZShyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbktpbmQpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobG9hZGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UubG9hZENvbmZpZyhbdGhpcy50cmFuc2FjdGlvbktpbmRdKS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25Ocikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmdldFRyYW5zYWN0aW9uQnlOckFuZEtpbmQodGhpcy50cmFuc2FjdGlvbk5yLCB0aGlzLnRyYW5zYWN0aW9uS2luZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PcmRlckluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAgICAgICAgICAgLy8gbm90aGluZyB0byBzZWUgaGVyZVxyXG4gICAgICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFN0YsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRXhGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQTRCbkUsTUFBTSxPQUFPLG9CQUFvQjtJQTBGN0IsWUFDVyxPQUEyQixFQUMxQiw0QkFBeUQsRUFDekQsMkJBQWtFLEVBQ2xFLGVBQWtDLEVBQ2xDLDRCQUF5RCxFQUN6RCxrQkFBcUMsRUFDckMsY0FBNkI7UUFOOUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsaUNBQTRCLEdBQTVC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Q0FBQyxJQUFJO2FBQ3hDOzs7WUFsQ08sa0JBQWtCO1lBRWxCLDJCQUEyQjtZQUozQixxQ0FBcUM7WUFkekMsaUJBQWlCO1lBb0JiLDJCQUEyQjtZQUczQixpQkFBaUI7WUFEakIsYUFBYTs7O3VCQWdDaEIsS0FBSztxQ0FHTCxLQUFLOzJCQVVMLEtBQUs7OEJBR0wsS0FBSzs0QkFZTCxLQUFLO3lCQVlMLEtBQUs7a0NBR0wsS0FBSzs4QkFHTCxLQUFLOzRCQUdMLEtBQUs7MkJBR0wsS0FBSzs2QkFHTCxLQUFLO21DQUdMLEtBQUs7Z0NBR0wsS0FBSzt3QkFHTCxXQUFXLFNBQUMsc0JBQXNCOytCQUtsQyxZQUFZLFNBQUMscUJBQXFCOzRCQUtsQyxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UG9zT3JkZXJEYXRhfSBmcm9tICcuLi8uLi9tb2RlbC9wb3Mtb3JkZXItZGF0YSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTYWZlSHRtbH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dSZXNwb25zZUludGVyZmFjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSAnLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1zYXZlLWNhbmNlbC1idXR0b25zICpuZ0lmPVwic2VydmljZS5tYW51YWxTYXZlUGFyYW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzYXZlSWNvbkRhdGFdPVwic2F2ZUljb25EYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FuY2VsSWNvbkRhdGFdPVwiY2FuY2VsSWNvbkRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxzXT1cInNob3dTYXZlQ2FuY2VsTGFiZWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW92YWJsZV09XCJzYXZlQ2FuY2VsTW92YWJsZVwiXHJcbiAgICAgICAgPjwvY28tc2F2ZS1jYW5jZWwtYnV0dG9ucz5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taW50ZXJuYWwgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SGVhZGVyXT1cInNob3dIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1F1aWNrQWNjZXNzXT1cInNob3dRdWlja0FjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uQmFyXT1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1ZpZXdNb2RlQnV0dG9uc109XCJzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpcm1hdGlvbkFuYWx5c2lzSWRdPVwiY29uZmlybWF0aW9uQW5hbHlzaXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3NPcmRlckRhdGFdPVwicG9zT3JkZXJEYXRhXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1pbnRlcm5hbD5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIFRyYW5zYWN0aW9uQ2ZnTmFtZSA9IFRyYW5zYWN0aW9uQ2ZnTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNvbmZpcm1hdGlvbkFuYWx5c2lzSWQoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBvc09yZGVyRGF0YTogUG9zT3JkZXJEYXRhO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uS2luZCh2YWx1ZTogVHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uS2luZCAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25LaW5kID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2dldFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25LaW5kKCk6IFRyYW5zYWN0aW9uS2luZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uS2luZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbk5yKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25OciAhPT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25OciA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9nZXRUcmFuc2FjdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uTnIoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25OcjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ZpZXdNb2RlQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzYXZlSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FuY2VsSWNvbkRhdGE6IFNhZmVIdG1sO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1NhdmVDYW5jZWxMYWJlbHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNhdmVDYW5jZWxNb3ZhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnKVxyXG4gICAgcHVibGljIGNoZWNrVHJhbnNhY3Rpb24oKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tUcmFuc2FjdGlvbkRpcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcpXHJcbiAgICBwdWJsaWMgY2hlY2tSb2xsQmFjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uucm9sbGJhY2tCZWFjb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25OcjogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnY29uZmlybWF0aW9uQW5hbHlzaXNJZCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jaGVja1RyYW5zYWN0aW9uRGlydHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEodGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uRGlydHkgJiYgdGhpcy5zZXJ2aWNlLm1hbnVhbFNhdmVQYXJhbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jb25uZWN0aW9uSW5pdGlhbGl6ZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoW3RoaXMudHJhbnNhY3Rpb25LaW5kXSkudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKHRoaXMudHJhbnNhY3Rpb25OciwgdGhpcy50cmFuc2FjdGlvbktpbmQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JlZW5Db25maWdMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlYWRlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuT3JkZXJJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5QYXltZW50SW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gc2VlIGhlcmVcclxuICAgICAgICAgICAgdGhpcy5zaG93SGVhZGVyID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -8,6 +8,7 @@ import { BaseModuleScreenConfigService, BaseModuleService } from '@colijnit/core
8
8
  import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
9
9
  import { TransactionService } from '../../service/transaction.service';
10
10
  import { TransactionCashRegisterOrderReceiptDialogModule } from "../transaction-cash-register-order/transaction-cash-register-order-receipt-dialog/transaction-cash-register-order-receipt-dialog.module";
11
+ import { SaveCancelButtonsModule } from '../save-cancel-buttons/save-cancel-buttons.module';
11
12
  export class TransactionModule {
12
13
  }
13
14
  TransactionModule.decorators = [
@@ -17,7 +18,8 @@ TransactionModule.decorators = [
17
18
  CoreModule,
18
19
  TransactionInternalModule,
19
20
  TransactionGridModule,
20
- TransactionCashRegisterOrderReceiptDialogModule
21
+ TransactionCashRegisterOrderReceiptDialogModule,
22
+ SaveCancelButtonsModule
21
23
  ],
22
24
  declarations: [
23
25
  TransactionComponent
@@ -31,4 +33,4 @@ TransactionModule.decorators = [
31
33
  ]
32
34
  },] }
33
35
  ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsK0NBQStDLEVBQ2hELE1BQU0seUlBQXlJLENBQUM7QUFxQmpKLE1BQU0sT0FBTyxpQkFBaUI7OztZQW5CN0IsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YseUJBQXlCO29CQUN6QixxQkFBcUI7b0JBQ3JCLCtDQUErQztpQkFDaEQ7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLG9CQUFvQjtpQkFDckI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBQztvQkFDN0QsRUFBQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsV0FBVyxFQUFFLHFDQUFxQyxFQUFDO2lCQUM3RjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asb0JBQW9CO2lCQUNyQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gJy4uL2NvcmUvY29yZS5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL3RyYW5zYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbnRlcm5hbE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwubW9kdWxlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkdyaWRNb2R1bGV9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWdyaWQvdHJhbnNhY3Rpb24tZ3JpZC90cmFuc2FjdGlvbi1ncmlkLm1vZHVsZSc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIEJhc2VNb2R1bGVTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvbkNhc2hSZWdpc3Rlck9yZGVyUmVjZWlwdERpYWxvZ01vZHVsZVxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1jYXNoLXJlZ2lzdGVyLW9yZGVyL3RyYW5zYWN0aW9uLWNhc2gtcmVnaXN0ZXItb3JkZXItcmVjZWlwdC1kaWFsb2cvdHJhbnNhY3Rpb24tY2FzaC1yZWdpc3Rlci1vcmRlci1yZWNlaXB0LWRpYWxvZy5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSW50ZXJuYWxNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkdyaWRNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkNhc2hSZWdpc3Rlck9yZGVyUmVjZWlwdERpYWxvZ01vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUcmFuc2FjdGlvbkNvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNlcnZpY2V9LFxyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRyYW5zYWN0aW9uQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25Nb2R1bGUge1xyXG59XHJcbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsK0NBQStDLEVBQ2hELE1BQU0seUlBQXlJLENBQUM7QUFDakosT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFzQjFGLE1BQU0sT0FBTyxpQkFBaUI7OztZQXBCN0IsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YseUJBQXlCO29CQUN6QixxQkFBcUI7b0JBQ3JCLCtDQUErQztvQkFDL0MsdUJBQXVCO2lCQUN4QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osb0JBQW9CO2lCQUNyQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFDO29CQUM3RCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxvQkFBb0I7aUJBQ3JCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSAnLi4vY29yZS9jb3JlLm1vZHVsZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db21wb25lbnR9IGZyb20gJy4vdHJhbnNhY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkludGVybmFsTW9kdWxlfSBmcm9tICcuLi90cmFuc2FjdGlvbi1pbnRlcm5hbC90cmFuc2FjdGlvbi1pbnRlcm5hbC5tb2R1bGUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uR3JpZE1vZHVsZX0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tZ3JpZC90cmFuc2FjdGlvbi1ncmlkL3RyYW5zYWN0aW9uLWdyaWQubW9kdWxlJztcclxuaW1wb3J0IHtCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgQmFzZU1vZHVsZVNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uQ2FzaFJlZ2lzdGVyT3JkZXJSZWNlaXB0RGlhbG9nTW9kdWxlXHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWNhc2gtcmVnaXN0ZXItb3JkZXIvdHJhbnNhY3Rpb24tY2FzaC1yZWdpc3Rlci1vcmRlci1yZWNlaXB0LWRpYWxvZy90cmFuc2FjdGlvbi1jYXNoLXJlZ2lzdGVyLW9yZGVyLXJlY2VpcHQtZGlhbG9nLm1vZHVsZVwiO1xyXG5pbXBvcnQge1NhdmVDYW5jZWxCdXR0b25zTW9kdWxlfSBmcm9tICcuLi9zYXZlLWNhbmNlbC1idXR0b25zL3NhdmUtY2FuY2VsLWJ1dHRvbnMubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uSW50ZXJuYWxNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkdyaWRNb2R1bGUsXHJcbiAgICBUcmFuc2FjdGlvbkNhc2hSZWdpc3Rlck9yZGVyUmVjZWlwdERpYWxvZ01vZHVsZSxcclxuICAgIFNhdmVDYW5jZWxCdXR0b25zTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRyYW5zYWN0aW9uQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2VydmljZX0sXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNhY3Rpb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk1vZHVsZSB7XHJcbn1cclxuIl19
@@ -36,7 +36,7 @@ export class TransactionHeaderPopupBaseComponent extends TransactionBaseComponen
36
36
  if (this.form.formGroup.dirty) {
37
37
  this.setFormDirty();
38
38
  }
39
- }), this.transactionEventService.transactionHeaderDirty.subscribe((dirty) => {
39
+ }), this.transactionEventService.transactionDirty.subscribe((dirty) => {
40
40
  if (dirty) {
41
41
  this.setFormDirty();
42
42
  }
@@ -180,4 +180,4 @@ TransactionHeaderPopupBaseComponent.ctorParameters = () => [
180
180
  TransactionHeaderPopupBaseComponent.propDecorators = {
181
181
  content: [{ type: ViewChild, args: [FormComponent,] }]
182
182
  };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBSTlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2hILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVB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LElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFYSxXQUFXOztZQUN2QixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssa0JBQWtCLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNEO1FBQ0gsQ0FBQztLQUFBOzs7WUExSUYsU0FBUzs7O1lBaEJGLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBVWhCLHFDQUFxQztZQVRyQyxpQkFBaUI7WUFDakIsdUJBQXVCO1lBTnZCLGlCQUFpQjtZQVFqQixhQUFhO1lBREUsaUJBQWlCO1lBTWhDLDBCQUEwQjs7O3NCQU8vQixTQUFTLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBGb3JtTWFzdGVyU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0RpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvZGlhbG9nLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tICcuLi8uLi9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpIHNldCBjb250ZW50KGZvcm06IEZvcm1Db21wb25lbnQpIHtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm07XHJcbiAgICB0aGlzLnN1YnMucHVzaChcclxuICAgICAgdGhpcy5mb3JtLm9uQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IEZvcm1Db250cm9sKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5mb3JtR3JvdXAuZGlydHkpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Rm9ybURpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkhlYWRlckRpcnR5LnN1YnNjcmliZSgoZGlydHk6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoZGlydHkpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Rm9ybURpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgcHJvdGVjdGVkIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZlQnV0dG9uQ2xpY2suc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNhdmVPYmplY3RzKCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhlYWRlclBvcHVwV2FudHNUb0Nsb3NlLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlydHkpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2Fza0ZvclNhdmUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25EZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIGlmICh0aGlzLmhlYWRlclJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWFkb25seSA9ICFhd2FpdCB0aGlzLmxvY2tUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVPYmplY3RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCkpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cFNhdmluZy5uZXh0KHRydWUpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZlQnV0dG9uRW5hYmxlQ2hhbmdlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5oZWFkZXJSZWFkb25seSkge1xyXG4gICAgICAgICAgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldEZvcm1QcmlzdGluZSgpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZVJlbGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uID0gdGhpcy5yZWxhdGlvbjtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5DYXNoRGVzaykge1xyXG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRSZWxhdGlvbk9uUmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCA9PT0gVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KG5ldyBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSgpLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldEZvcm1QcmlzdGluZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgdGhpcy5mb3JtLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cFNhdmVCdXR0b25FbmFibGVDaGFuZ2UubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0Rm9ybURpcnR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhlYWRlclBvcHVwU2F2ZUJ1dHRvbkVuYWJsZUNoYW5nZS5uZXh0KHRoaXMuZGlydHkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfYXNrRm9yU2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ1NBVkUnLCAnTUVTU0FHRV9TQVZFX0NIQU5HRVMnKTtcclxuICAgIGlmIChyZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXMpIHtcclxuICAgICAgYXdhaXQgdGhpcy5zYXZlT2JqZWN0cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBSTlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2hILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVB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LElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFYSxXQUFXOztZQUN2QixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssa0JBQWtCLENBQUMsR0FBRyxFQUFFO2dCQUM5QyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNEO1FBQ0gsQ0FBQztLQUFBOzs7WUExSUYsU0FBUzs7O1lBaEJGLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBVWhCLHFDQUFxQztZQVRyQyxpQkFBaUI7WUFDakIsdUJBQXVCO1lBTnZCLGlCQUFpQjtZQVFqQixhQUFhO1lBREUsaUJBQWlCO1lBTWhDLDBCQUEwQjs7O3NCQU8vQixTQUFTLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50LCBGb3JtTWFzdGVyU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0RpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvZGlhbG9nLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tICcuLi8uLi9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKEZvcm1Db21wb25lbnQpIHNldCBjb250ZW50KGZvcm06IEZvcm1Db21wb25lbnQpIHtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm07XHJcbiAgICB0aGlzLnN1YnMucHVzaChcclxuICAgICAgdGhpcy5mb3JtLm9uQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IEZvcm1Db250cm9sKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5mb3JtR3JvdXAuZGlydHkpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Rm9ybURpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkRpcnR5LnN1YnNjcmliZSgoZGlydHk6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoZGlydHkpIHtcclxuICAgICAgICAgIHRoaXMuc2V0Rm9ybURpcnR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgcHJvdGVjdGVkIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZlQnV0dG9uQ2xpY2suc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNhdmVPYmplY3RzKCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhlYWRlclBvcHVwV2FudHNUb0Nsb3NlLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlydHkpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2Fza0ZvclNhdmUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25EZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIGlmICh0aGlzLmhlYWRlclJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZWFkb25seSA9ICFhd2FpdCB0aGlzLmxvY2tUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVPYmplY3RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCkpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cFNhdmluZy5uZXh0KHRydWUpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZlQnV0dG9uRW5hYmxlQ2hhbmdlLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5oZWFkZXJSZWFkb25seSkge1xyXG4gICAgICAgICAgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldEZvcm1QcmlzdGluZSgpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuaGVhZGVyUG9wdXBTYXZpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZVJlbGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uID0gdGhpcy5yZWxhdGlvbjtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5DYXNoRGVzaykge1xyXG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRSZWxhdGlvbk9uUmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCA9PT0gVHJhbnNhY3Rpb25LaW5kLkNhc2hEZXNrKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KG5ldyBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSgpLGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldEZvcm1QcmlzdGluZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgdGhpcy5mb3JtLmZvcm1Hcm91cC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cFNhdmVCdXR0b25FbmFibGVDaGFuZ2UubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0Rm9ybURpcnR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhlYWRlclBvcHVwU2F2ZUJ1dHRvbkVuYWJsZUNoYW5nZS5uZXh0KHRoaXMuZGlydHkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfYXNrRm9yU2F2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ1NBVkUnLCAnTUVTU0FHRV9TQVZFX0NIQU5HRVMnKTtcclxuICAgIGlmIChyZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXMpIHtcclxuICAgICAgYXdhaXQgdGhpcy5zYXZlT2JqZWN0cygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5oZWFkZXJQb3B1cENsb3NlLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -31,10 +31,11 @@ export class PendingReasonService extends TransactionBaseService {
31
31
  }
32
32
  const hasPendingReasons = response.headerOperationStatuses.filter(los => los.pendingReason !== "REASON_NONE").length > 0;
33
33
  if (!hasPendingReasons) {
34
- if ((this.autoSave && saveTransaction) || overrideSave) {
34
+ if ((this.autoSave && saveTransaction && !this.manualSaveParam) || overrideSave) {
35
35
  return this.saveTransactionAndCommit(response);
36
36
  }
37
37
  else { // just replace transaction object
38
+ this.transactionEventService.blockScreen.next(false);
38
39
  yield this.rememberCurrentTransaction(response);
39
40
  }
40
41
  }
@@ -62,10 +63,11 @@ export class PendingReasonService extends TransactionBaseService {
62
63
  }
63
64
  this.transactionLineAdded = false;
64
65
  }
65
- if (this.autoSave && saveTransaction) {
66
+ if (this.autoSave && saveTransaction && !this.manualSaveParam) {
66
67
  return this.saveTransactionAndCommit(response);
67
68
  }
68
69
  else {
70
+ this.transactionEventService.blockScreen.next(false);
69
71
  if (rememberTransaction) {
70
72
  yield this.rememberCurrentTransaction(response);
71
73
  }
@@ -197,4 +199,4 @@ export class PendingReasonService extends TransactionBaseService {
197
199
  PendingReasonService.decorators = [
198
200
  { type: Injectable }
199
201
  ];
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUUvRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUloSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUVyRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUFFakQsd0JBQXdCLENBQUMsUUFBZ0I7O1lBQ3BELE9BQU8sSUFBSSxPQUFPLENBQTBCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztxQkFDOUMsSUFBSSxDQUFDLENBQU8sUUFBaUMsRUFBRSxFQUFFO29CQUM5QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQSxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtvQkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsUUFBaUMsRUFBRSxrQkFBMkIsSUFBSSxFQUFFLGVBQXdCLEtBQUs7O1lBQzFJLDRGQUE0RjtZQUM1RixvRUFBb0U7WUFDcEUsSUFBSTtZQUNKLElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztZQUM1QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEUsTUFBTSxNQUFNLEdBQTBCLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUUsT0FBTyxHQUFHLE9BQU8sS0FBSSxNQUFNLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFBLENBQUM7YUFDaEc7WUFDRCxNQUFNLGlCQUFpQixHQUFZLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxlQUFlLENBQUMsSUFBSSxZQUFZLEVBQUU7b0JBQ3RELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNoRDtxQkFBTSxFQUFFLGtDQUFrQztvQkFDekMsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pEO2FBQ0Y7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFZSwyQkFBMkIsQ0FBQyxRQUFpQyxFQUFFLGtCQUEyQixJQUFJLEVBQUUsc0JBQStCLElBQUk7O1lBQ2pKLHdGQUF3RjtZQUN4RixvRUFBb0U7WUFDcEUsSUFBSTtZQUNKLElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztZQUM1QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEUsTUFBTSxNQUFNLEdBQXdCLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEUsTUFBTSxTQUFTLEdBQXdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdkcsT0FBTyxHQUFHLE9BQU8sS0FBSSxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFBLENBQUM7YUFDekY7WUFDRCxNQUFNLGlCQUFpQixHQUFZLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN0QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsSUFBSTt3QkFDRixJQUFJLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDbEc7b0JBQUMsT0FBTyxDQUFDLEVBQUU7cUJBQ1g7b0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLGVBQWUsRUFBRTtvQkFDcEMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2hEO3FCQUFNO29CQUNMLElBQUksbUJBQW1CLEVBQUU7d0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNqRDtpQkFDRjthQUNGO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRWUsMEJBQTBCLENBQUMsV0FBb0MsRUFBRSxlQUFvQyxFQUFFLGVBQW9DOztZQUN6SixRQUFRLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekMsS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLEtBQUssaUJBQWlCLENBQUMsU0FBUztvQkFDOUIsSUFBSSxlQUFlLENBQUMsYUFBYSxLQUFLLGVBQWUsRUFBRTt3QkFDdkQscURBQXFEO3dCQUNyRCxXQUFXO3dCQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQztxQkFDbEU7b0JBQ0QsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsS0FBSyxpQkFBaUIsQ0FBQyxtQkFBbUI7b0JBQ3hDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLHdCQUF3QixFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUM1SixPQUFPLElBQUksQ0FBQztnQkFDZCxLQUFLLGlCQUFpQixDQUFDLGlCQUFpQjtvQkFDdEMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNyTixPQUFPLElBQUksQ0FBQztnQkFDZCxLQUFLLGlCQUFpQixDQUFDLDRCQUE0QjtvQkFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDdEQsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxpQkFBaUIsQ0FBQyw2QkFBNkI7b0JBQ2xELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDdkosT0FBTyxJQUFJLENBQUM7Z0JBQ2QsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCO29CQUNFLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7UUFDSCxDQUFDO0tBQUE7SUFFZSw0QkFBNEIsQ0FBQyxlQUFzQyxFQUFFLGVBQWdDOztZQUNuSCxRQUFRLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekMsS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLEtBQUssaUJBQWlCLENBQUMsU0FBUztvQkFDOUIsSUFBSSxlQUFlLENBQUMsYUFBYSxLQUFLLGVBQWUsRUFBRTt3QkFDckQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLENBQUM7cUJBQ3hFO29CQUNELE9BQU8sS0FBSyxDQUFDO2dCQUNmLEtBQUssaUJBQWlCLENBQUMsbUJBQW1CO29CQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsd0JBQXdCLEVBQUUsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNLLEtBQUssaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dCQUM1QjtvQkFDRSxPQUFPLElBQUksQ0FBQzthQUNmO1FBQ0gsQ0FBQztLQUFBO0lBRVksd0JBQXdCLENBQUMsaUJBQWtEOztZQUN0RixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0csNkNBQTZDO1lBQzdDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxDQUFDO0tBQUE7SUFFWSwwQkFBMEIsQ0FBQyxtQkFBc0Q7O1lBQzVGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvRyw2Q0FBNkM7WUFDN0MsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0lBRWEsY0FBYyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsT0FBZSxFQUFFLElBQXVCOztZQUNqRyxNQUFNLGFBQWEsR0FBRyxJQUFJLCtCQUErQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUUsaUhBQWlIO1lBQ2pILE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNoRyxhQUFhLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssa0JBQWtCLENBQUMsR0FBRyxDQUFDO1lBQ3hFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELG9DQUFvQztRQUN0QyxDQUFDO0tBQUE7SUFFYSx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsZUFBOEMsRUFBRSxNQUFjLEVBQUUsSUFBdUI7O1lBQzNJLE1BQU0sYUFBYSxHQUFHLElBQUksK0JBQStCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RSxJQUFJLElBQVksQ0FBQztZQUNqQixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUNwRixlQUFlLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxvQ0FBb0MsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekcsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDeEI7WUFDRCxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUM7S0FBQTtJQUVhLHNCQUFzQixDQUFDLGVBQWdDLEVBQUUsSUFBWSxFQUFFLGVBQW9DLEVBQUUsTUFBYyxFQUFFLElBQXVCLEVBQUUsZUFBaUM7O1lBQ25NLE1BQU0sYUFBYSxHQUFHLElBQUksK0JBQStCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3RJLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ2xELGFBQWEsQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7Z0JBQzlELGFBQWEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3hELE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3BEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDO0tBQUE7SUFFYSxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsTUFBYyxFQUFFLE9BQWUsRUFBRSxJQUF1Qjs7WUFDdkcsTUFBTSxhQUFhLEdBQUcsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hGLGlIQUFpSDtZQUNqSCxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEcsYUFBYSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztZQUN4RSxPQUFPLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FBQTtJQUVhLGlCQUFpQixDQUFDLE9BQWU7O1lBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELENBQUM7S0FBQTtJQUVhLGNBQWMsQ0FBQyxJQUFZOztZQUN2QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2lCQUNoQyxJQUFJLENBQUMsQ0FBTyxRQUFpQyxFQUFFLEVBQUU7Z0JBQzlDLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQSxDQUNGLENBQUM7UUFDTixDQUFDO0tBQUE7OztZQTdLRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge0hlYWRlck9wZXJhdGlvblN0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2hlYWRlci1vcGVyYXRpb24tc3RhdHVzLmJvJztcclxuaW1wb3J0IHtSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLWhlYWRlci1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljLmJvJztcclxuaW1wb3J0IHtEaWFsb2dSZXNwb25zZUludGVyZmFjZX0gZnJvbSAnLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSAnLi4vY29tcG9uZW50L2NvcmUvZW51bS9hcHAtcG9wdXAtYnV0dG9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZVNlcnZpY2V9IGZyb20gJy4vdHJhbnNhY3Rpb24tYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQZW5kaW5nUmVhc29uU2VydmljZSBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZVNlcnZpY2Uge1xyXG5cclxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5jb25uZWN0b3IuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkKVxyXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgc2F2ZVRyYW5zYWN0aW9uOiBib29sZWFuID0gdHJ1ZSwgb3ZlcnJpZGVTYXZlOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIC8vIGlmICghcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMgfHwgcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgIHJldHVybiB0aGlzLmF1dG9TYXZlID8gdGhpcy5fc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KCkgOiB0cnVlO1xyXG4gICAgLy8gfVxyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0YXR1czogSGVhZGVyT3BlcmF0aW9uU3RhdHVzID0gcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXNbaV07XHJcbiAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGF3YWl0IHRoaXMuX2hhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1cyhzdGF0dXMsIHJlc3BvbnNlLnRyYW5zYWN0aW9uSW5mbyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYXNQZW5kaW5nUmVhc29uczogYm9vbGVhbiA9IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzLmZpbHRlcihsb3MgPT4gbG9zLnBlbmRpbmdSZWFzb24gIT09IFwiUkVBU09OX05PTkVcIikubGVuZ3RoID4gMDtcclxuICAgIGlmICghaGFzUGVuZGluZ1JlYXNvbnMpIHtcclxuICAgICAgaWYgKCh0aGlzLmF1dG9TYXZlICYmIHNhdmVUcmFuc2FjdGlvbikgfHwgb3ZlcnJpZGVTYXZlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KHJlc3BvbnNlKTtcclxuICAgICAgfSBlbHNlIHsgLy8ganVzdCByZXBsYWNlIHRyYW5zYWN0aW9uIG9iamVjdFxyXG4gICAgICAgIGF3YWl0IHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCBzYXZlVHJhbnNhY3Rpb246IGJvb2xlYW4gPSB0cnVlLCByZW1lbWJlclRyYW5zYWN0aW9uOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgLy8gaWYgKCFyZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMgfHwgcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICByZXR1cm4gdGhpcy5hdXRvU2F2ZSA/IHRoaXMuX3NhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpIDogdHJ1ZTtcclxuICAgIC8vIH1cclxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgc3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzID0gcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzW2ldO1xyXG4gICAgICBjb25zdCB0cmFuc0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSByZXNwb25zZS50cmFuc2FjdGlvbkxpbmVzLmZpbmQodCA9PiB0LmxpbmVOciA9PT0gc3RhdHVzLmxpbmVOcik7XHJcbiAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGF3YWl0IHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMocmVzcG9uc2UsIHN0YXR1cywgdHJhbnNMaW5lKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGhhc1BlbmRpbmdSZWFzb25zOiBib29sZWFuID0gcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzLmZpbHRlcihsb3MgPT4gbG9zLnBlbmRpbmdSZWFzb24gIT09IFwiUkVBU09OX05PTkVcIikubGVuZ3RoID4gMDtcclxuICAgIGlmICghaGFzUGVuZGluZ1JlYXNvbnMpIHtcclxuICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lQWRkZWQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVBZGRlZC5uZXh0KHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlc1swXS5saW5lTnIpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmVBZGRlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmF1dG9TYXZlICYmIHNhdmVUcmFuc2FjdGlvbikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdChyZXNwb25zZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHJlbWVtYmVyVHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXModHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCBvcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMsIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgc3dpdGNoIChvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5BQk9SVEVEOlxyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNBTkNFTExFRDpcclxuICAgICAgICBpZiAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24gIT09ICdVU0VSX0RFQ0lTSU9OJykge1xyXG4gICAgICAgIC8vICAgYXdhaXQgdGhpcy5fY2FuY2VsQXJ0aWNsZShvcGVyYXRpb25TdGF0dXMudXVpZCk7XHJcbiAgICAgICAgLy8gfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3Nob3dSZWFzb25EaWFsb2cob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UcmFuc2xhdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24odHJhbnNhY3Rpb25MaW5lLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblRyYW5zbGF0aW9uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gICAgICAgIGF3YWl0IHRoaXMuX3Nob3dXYXJlaG91c2VDY0RpYWxvZyh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kLCBvcGVyYXRpb25TdGF0dXMudXVpZCwgdHJhbnNhY3Rpb25MaW5lLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlLCB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTl9DUklUSUNBTF9ESVNDT05USU5VQVRJT046XHJcbiAgICAgICAgdGhpcy5fc2hvd1JlYXNvbkRpYWxvZyhvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0hBUkFDVEVSSVNUSUNTX0FOU1dFUl9ORUVERUQ6XHJcbiAgICAgICAgdGhpcy5fc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKG9wZXJhdGlvblN0YXR1cy51dWlkLCBvcGVyYXRpb25TdGF0dXMuY2hhcmFjdGVyaXN0aWMsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgX2hhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1cyhvcGVyYXRpb25TdGF0dXM6IEhlYWRlck9wZXJhdGlvblN0YXR1cywgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DQU5DRUxMRUQ6XHJcbiAgICAgICAgaWYgKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uICE9PSAnVVNFUl9ERUNJU0lPTicpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX3Nob3dSZWFzb25EaWFsb2cob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UcmFuc2xhdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25maXJtSGVhZGVyQWN0aW9uKHRyYW5zYWN0aW9uSW5mby51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UcmFuc2xhdGlvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05FOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKTtcclxuICAgIC8vIHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nSGVhZGVyUmVhc29uKHBlbmRpbmdIZWFkZXJWYWx1ZXM6IFJlc29sdmVIZWFkZXJQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdIZWFkZXJSZWFzb24ocGVuZGluZ0hlYWRlclZhbHVlcyk7XHJcbiAgICAvLyB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1BY3Rpb24odXVpZDogc3RyaW5nLCByZWFzb246IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICAvLyBjb25zdCBwZW5kaW5nUmVhc29uVGV4dDogc3RyaW5nID0gYXdhaXQgdGhpcy5fZ2V0UGVuZGluZ1JlYXNvblRleHQodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnQWN0aW9uJywgbWVzc2FnZSk7XHJcbiAgICByZWFzb25SZXF1ZXN0LmNvbmZpcm1hdGlvbiA9IHJlc3BvbnNlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLlllcztcclxuICAgIGF3YWl0IHRoaXMucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHJlYXNvblJlcXVlc3QpO1xyXG4gICAgLy8gdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cygpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2codXVpZDogc3RyaW5nLCBjaGFyYWN0ZXJpc3RpY3M6IFRyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgbGV0IGNoYXI6IHN0cmluZztcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q2hhcmFjdGVyaXN0aWNzKFxyXG4gICAgICBjaGFyYWN0ZXJpc3RpY3MucXVlc3Rpb24sIGNoYXJhY3RlcmlzdGljcy50cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZXMsIGNoYXJhY3RlcmlzdGljcy52YWx1ZSk7XHJcbiAgICBpZiAocmVzcG9uc2UuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuT2spIHtcclxuICAgICAgY2hhciA9IHJlc3BvbnNlLm91dHB1dDtcclxuICAgIH1cclxuICAgIHJlYXNvblJlcXVlc3QudGV4dHVhbFVzZXJJbnB1dCA9IGNoYXI7XHJcbiAgICBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dXYXJlaG91c2VDY0RpYWxvZyh0cmFuc2FjdGlvbktpbmQ6IFRyYW5zYWN0aW9uS2luZCwgdXVpZDogc3RyaW5nLCB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSwgdHJhbnNhY3Rpb25JbmZvPzogVHJhbnNhY3Rpb25JbmZvKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93V2FyZWhvdXNlQ0ModHJhbnNhY3Rpb25LaW5kLCB0cmFuc2FjdGlvbkxpbmUsIHRyYW5zYWN0aW9uSW5mbyk7XHJcbiAgICBpZiAocmVzcG9uc2UuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuT2spIHtcclxuICAgICAgcmVhc29uUmVxdWVzdC5xdWFudGl0eSA9IHJlc3BvbnNlLm91dHB1dC5xdWFudGl0eTtcclxuICAgICAgcmVhc29uUmVxdWVzdC5jb21taXNzaW9uQ29kZSA9IHJlc3BvbnNlLm91dHB1dC5jb21taXNzaW9uQ29kZTtcclxuICAgICAgcmVhc29uUmVxdWVzdC53YXJlaG91c2VOciA9IHJlc3BvbnNlLm91dHB1dC53YXJlaG91c2VOcjtcclxuICAgICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9jYW5jZWxBcnRpY2xlKHV1aWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUhlYWRlckFjdGlvbih1dWlkOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6IFBlbmRpbmdSZWFzb25UeXBlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVIZWFkZXJQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgLy8gY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ0FjdGlvbicsIG1lc3NhZ2UpO1xyXG4gICAgcmVhc29uUmVxdWVzdC5jb25maXJtYXRpb24gPSByZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXM7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dSZWFzb25EaWFsb2cobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbihtZXNzYWdlLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jYW5jZWxBcnRpY2xlKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUodXVpZClcclxuICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUUvRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUloSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUVyRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXpDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxzQkFBc0I7SUFFakQsd0JBQXdCLENBQUMsUUFBZ0I7O1lBQ3BELE9BQU8sSUFBSSxPQUFPLENBQTBCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQztxQkFDOUMsSUFBSSxDQUFDLENBQU8sUUFBaUMsRUFBRSxFQUFFO29CQUM5QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQSxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtvQkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsUUFBaUMsRUFBRSxrQkFBMkIsSUFBSSxFQUFFLGVBQXdCLEtBQUs7O1lBQzFJLDRGQUE0RjtZ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LE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRixpSEFBaUg7WUFDakgsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hHLGFBQWEsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sS0FBSyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7WUFDeEUsT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDO0tBQUE7SUFFYSxpQkFBaUIsQ0FBQyxPQUFlOztZQUM3QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxDQUFDO0tBQUE7SUFFYSxjQUFjLENBQUMsSUFBWTs7WUFDdkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQztpQkFDaEMsSUFBSSxDQUFDLENBQU8sUUFBaUMsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUEsQ0FDRixDQUFDO1FBQ04sQ0FBQztLQUFBOzs7WUEvS0YsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtMaW5lT3BlcmF0aW9uU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvJztcclxuaW1wb3J0IHtQZW5kaW5nUmVhc29uVHlwZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtIZWFkZXJPcGVyYXRpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9oZWFkZXItb3BlcmF0aW9uLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7UmVzb2x2ZUhlYWRlclBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1oZWFkZXItcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpYy5ibyc7XHJcbmltcG9ydCB7RGlhbG9nUmVzcG9uc2VJbnRlcmZhY2V9IGZyb20gJy4uL2ludGVyZmFjZS9kaWFsb2ctcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtBcHBQb3B1cEJ1dHRvblR5cGV9IGZyb20gJy4uL2NvbXBvbmVudC9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLWJhc2Uuc2VydmljZSc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUGVuZGluZ1JlYXNvblNlcnZpY2UgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGFzeW5jIGNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZClcclxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXNlcyhyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHNhdmVUcmFuc2FjdGlvbjogYm9vbGVhbiA9IHRydWUsIG92ZXJyaWRlU2F2ZTogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvLyBpZiAoIXJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzIHx8IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICByZXR1cm4gdGhpcy5hdXRvU2F2ZSA/IHRoaXMuX3NhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpIDogdHJ1ZTtcclxuICAgIC8vIH1cclxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByZXNwb25zZS5oZWFkZXJPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdGF0dXM6IEhlYWRlck9wZXJhdGlvblN0YXR1cyA9IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzW2ldO1xyXG4gICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBhd2FpdCB0aGlzLl9oYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXMoc3RhdHVzLCByZXNwb25zZS50cmFuc2FjdGlvbkluZm8pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGFzUGVuZGluZ1JlYXNvbnM6IGJvb2xlYW4gPSByZXNwb25zZS5oZWFkZXJPcGVyYXRpb25TdGF0dXNlcy5maWx0ZXIobG9zID0+IGxvcy5wZW5kaW5nUmVhc29uICE9PSBcIlJFQVNPTl9OT05FXCIpLmxlbmd0aCA+IDA7XHJcbiAgICBpZiAoIWhhc1BlbmRpbmdSZWFzb25zKSB7XHJcbiAgICAgIGlmICgodGhpcy5hdXRvU2F2ZSAmJiBzYXZlVHJhbnNhY3Rpb24gJiYgIXRoaXMubWFudWFsU2F2ZVBhcmFtKSB8fCBvdmVycmlkZVNhdmUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQocmVzcG9uc2UpO1xyXG4gICAgICB9IGVsc2UgeyAvLyBqdXN0IHJlcGxhY2UgdHJhbnNhY3Rpb24gb2JqZWN0XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5ibG9ja1NjcmVlbi5uZXh0KGZhbHNlKTtcclxuICAgICAgICBhd2FpdCB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgc2F2ZVRyYW5zYWN0aW9uOiBib29sZWFuID0gdHJ1ZSwgcmVtZW1iZXJUcmFuc2FjdGlvbjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIC8vIGlmICghcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzIHx8IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGggPT09IDApIHtcclxuICAgIC8vICAgcmV0dXJuIHRoaXMuYXV0b1NhdmUgPyB0aGlzLl9zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKSA6IHRydWU7XHJcbiAgICAvLyB9XHJcbiAgICBsZXQgc3VjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlc1tpXTtcclxuICAgICAgY29uc3QgdHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvID0gcmVzcG9uc2UudHJhbnNhY3Rpb25MaW5lcy5maW5kKHQgPT4gdC5saW5lTnIgPT09IHN0YXR1cy5saW5lTnIpO1xyXG4gICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBhd2FpdCB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHJlc3BvbnNlLCBzdGF0dXMsIHRyYW5zTGluZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBoYXNQZW5kaW5nUmVhc29uczogYm9vbGVhbiA9IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcy5maWx0ZXIobG9zID0+IGxvcy5wZW5kaW5nUmVhc29uICE9PSBcIlJFQVNPTl9OT05FXCIpLmxlbmd0aCA+IDA7XHJcbiAgICBpZiAoIWhhc1BlbmRpbmdSZWFzb25zKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZUFkZGVkKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQWRkZWQubmV4dChyZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXNbMF0ubGluZU5yKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lQWRkZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hdXRvU2F2ZSAmJiBzYXZlVHJhbnNhY3Rpb24gJiYgIXRoaXMubWFudWFsU2F2ZVBhcmFtKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KHJlc3BvbnNlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmJsb2NrU2NyZWVuLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIGlmIChyZW1lbWJlclRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIF9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgb3BlcmF0aW9uU3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DQU5DRUxMRUQ6XHJcbiAgICAgICAgaWYgKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uICE9PSAnVVNFUl9ERUNJU0lPTicpIHtcclxuICAgICAgICAvLyAgIGF3YWl0IHRoaXMuX2NhbmNlbEFydGljbGUob3BlcmF0aW9uU3RhdHVzLnV1aWQpO1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9zaG93UmVhc29uRGlhbG9nKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHJhbnNsYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcclxuICAgICAgICBhd2FpdCB0aGlzLl9jb25maXJtQWN0aW9uKHRyYW5zYWN0aW9uTGluZS51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UcmFuc2xhdGlvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5JTlZBTElEX0xPR0lTVElDUzpcclxuICAgICAgICBhd2FpdCB0aGlzLl9zaG93V2FyZWhvdXNlQ2NEaWFsb2codHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCwgb3BlcmF0aW9uU3RhdHVzLnV1aWQsIHRyYW5zYWN0aW9uTGluZSwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSwgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxyXG4gICAgICAgIHRoaXMuX3Nob3dSZWFzb25EaWFsb2cob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNIQVJBQ1RFUklTVElDU19BTlNXRVJfTkVFREVEOlxyXG4gICAgICAgIHRoaXMuX3Nob3dDaGFyYWN0ZXJpc3RpY0RpYWxvZyhvcGVyYXRpb25TdGF0dXMudXVpZCwgb3BlcmF0aW9uU3RhdHVzLmNoYXJhY3RlcmlzdGljLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05FOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIF9oYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXMob3BlcmF0aW9uU3RhdHVzOiBIZWFkZXJPcGVyYXRpb25TdGF0dXMsIHRyYW5zYWN0aW9uSW5mbzogVHJhbnNhY3Rpb25JbmZvKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBzd2l0Y2ggKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gICAgICAgIGlmIChvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiAhPT0gJ1VTRVJfREVDSVNJT04nKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLl9zaG93UmVhc29uRGlhbG9nKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHJhbnNsYXRpb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29uZmlybUhlYWRlckFjdGlvbih0cmFuc2FjdGlvbkluZm8udXVpZCwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHJhbnNsYXRpb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXM6IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlcyk7XHJcbiAgICAvLyB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgIHRoaXMuaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzOiBSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nSGVhZGVyUmVhc29uKHBlbmRpbmdIZWFkZXJWYWx1ZXMpO1xyXG4gICAgLy8gdGhpcy5yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXNlcyhyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jb25maXJtQWN0aW9uKHV1aWQ6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgLy8gY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ0FjdGlvbicsIG1lc3NhZ2UpO1xyXG4gICAgcmVhc29uUmVxdWVzdC5jb25maXJtYXRpb24gPSByZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXM7XHJcbiAgICBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICAgIC8vIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKHV1aWQ6IHN0cmluZywgY2hhcmFjdGVyaXN0aWNzOiBUcmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpYywgcmVhc29uOiBzdHJpbmcsIHR5cGU6IFBlbmRpbmdSZWFzb25UeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIGxldCBjaGFyOiBzdHJpbmc7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NoYXJhY3RlcmlzdGljcyhcclxuICAgICAgY2hhcmFjdGVyaXN0aWNzLnF1ZXN0aW9uLCBjaGFyYWN0ZXJpc3RpY3MudHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWNDaG9pY2VzLCBjaGFyYWN0ZXJpc3RpY3MudmFsdWUpO1xyXG4gICAgaWYgKHJlc3BvbnNlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLk9rKSB7XHJcbiAgICAgIGNoYXIgPSByZXNwb25zZS5vdXRwdXQ7XHJcbiAgICB9XHJcbiAgICByZWFzb25SZXF1ZXN0LnRleHR1YWxVc2VySW5wdXQgPSBjaGFyO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93V2FyZWhvdXNlQ2NEaWFsb2codHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQsIHV1aWQ6IHN0cmluZywgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUsIHRyYW5zYWN0aW9uSW5mbz86IFRyYW5zYWN0aW9uSW5mbyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1dhcmVob3VzZUNDKHRyYW5zYWN0aW9uS2luZCwgdHJhbnNhY3Rpb25MaW5lLCB0cmFuc2FjdGlvbkluZm8pO1xyXG4gICAgaWYgKHJlc3BvbnNlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLk9rKSB7XHJcbiAgICAgIHJlYXNvblJlcXVlc3QucXVhbnRpdHkgPSByZXNwb25zZS5vdXRwdXQucXVhbnRpdHk7XHJcbiAgICAgIHJlYXNvblJlcXVlc3QuY29tbWlzc2lvbkNvZGUgPSByZXNwb25zZS5vdXRwdXQuY29tbWlzc2lvbkNvZGU7XHJcbiAgICAgIHJlYXNvblJlcXVlc3Qud2FyZWhvdXNlTnIgPSByZXNwb25zZS5vdXRwdXQud2FyZWhvdXNlTnI7XHJcbiAgICAgIGF3YWl0IHRoaXMucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHJlYXNvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fY2FuY2VsQXJ0aWNsZSh1dWlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1IZWFkZXJBY3Rpb24odXVpZDogc3RyaW5nLCByZWFzb246IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIC8vIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKCdBY3Rpb24nLCBtZXNzYWdlKTtcclxuICAgIHJlYXNvblJlcXVlc3QuY29uZmlybWF0aW9uID0gcmVzcG9uc2UuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmVzb2x2ZVBlbmRpbmdIZWFkZXJSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93UmVhc29uRGlhbG9nKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24obWVzc2FnZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY2FuY2VsQXJ0aWNsZSh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQpXHJcbiAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19