@colijnit/transaction 12.1.66 → 12.1.68

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 (37) hide show
  1. package/bundles/colijnit-transaction.umd.js +194 -152
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +58 -58
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +59 -59
  6. package/esm2015/lib/component/transaction/transaction.component.js +1 -1
  7. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +18 -6
  8. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +7 -3
  9. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +6 -3
  10. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.js +24 -8
  11. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +2 -2
  12. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +4 -1
  13. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +1 -4
  14. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +7 -3
  15. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +6 -3
  16. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +1 -1
  17. package/esm2015/lib/component/transaction-search/transaction-search.component.js +1 -1
  18. package/esm2015/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.js +36 -30
  19. package/esm2015/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.js +8 -3
  20. package/esm2015/lib/service/transaction.service.js +1 -1
  21. package/fesm2015/colijnit-transaction.js +146 -103
  22. package/fesm2015/colijnit-transaction.js.map +1 -1
  23. package/lib/component/transaction-confirmation-details/style/_layout.scss +4 -0
  24. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +2 -1
  25. package/lib/component/transaction-confirmation-history/style/_layout.scss +4 -0
  26. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +2 -0
  27. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +1 -0
  28. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.d.ts +6 -2
  29. package/lib/component/transaction-line-side-panel/style/_layout.scss +5 -0
  30. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +1 -0
  31. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +1 -0
  32. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +5 -8
  33. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +2 -3
  34. package/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.d.ts +9 -6
  35. package/lib/component/transaction-side-panel-edit-request-details/style/_layout.scss +55 -16
  36. package/lib/component/transaction-side-panel-edit-request-details/style/_material-definition.scss +0 -1
  37. package/package.json +1 -1
@@ -8,6 +8,8 @@ import { TransactionService } from "../../../service/transaction.service";
8
8
  import { ArticleService } from "../../../service/article.service";
9
9
  import { DialogService } from "../../../service/dialog.service";
10
10
  import { TransactionReceiveGoodsService } from "../../transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service";
11
+ import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
12
+ import { TransactionTypeCategory } from "../../../enum/transaction-type-category.enum";
11
13
  export class ReceiveGoodsRequestComponent {
12
14
  constructor(iconCacheService, _formMaster, _service, _articleService, _dialogService, _receiveGoodsService) {
13
15
  this.iconCacheService = iconCacheService;
@@ -17,20 +19,14 @@ export class ReceiveGoodsRequestComponent {
17
19
  this._dialogService = _dialogService;
18
20
  this._receiveGoodsService = _receiveGoodsService;
19
21
  this.icons = Icon;
22
+ this.transactionKind = TransactionKind;
23
+ this.transactionTypeCategory = TransactionTypeCategory;
20
24
  this.reloadReceivingGoodsHistory = new EventEmitter();
21
25
  this.receiptDetails = new PurchaseOrderLineReceiptDetails();
22
26
  this.request = new ReceiveGoodsForPurchaseOrderRequest();
23
27
  this.saveButtonDisabled = false;
24
- this.locationDropdownFields = { text: "locationNo", value: "locationNo" };
25
28
  this.readonly = false;
26
29
  this._subscriptions = [];
27
- this.request.purchaseOrderLineReceiptDetailsDTOS = [this.receiptDetails];
28
- const timeElapsed = Date.now();
29
- this.request.receivedDate = new Date(timeElapsed);
30
- }
31
- set amountLeftToReceive(value) {
32
- this._amountLeftToReceive = value;
33
- this.receiptDetails.quantityToReceive = value;
34
30
  }
35
31
  set transactionLine(value) {
36
32
  this._transactionLine = value;
@@ -38,6 +34,12 @@ export class ReceiveGoodsRequestComponent {
38
34
  this.receiptDetails.warehouseNr = value.warehouseNumber;
39
35
  this.receiptDetails.lineNr = value.lineNr;
40
36
  }
37
+ set amountLeftToReceive(value) {
38
+ this._amountLeftToReceive = value;
39
+ if (!this.returnStockMode()) {
40
+ this.receiptDetails.quantityToReceive = value;
41
+ }
42
+ }
41
43
  showClass() {
42
44
  return true;
43
45
  }
@@ -51,10 +53,16 @@ export class ReceiveGoodsRequestComponent {
51
53
  this._subscriptions.push(this._receiveGoodsService.returnArticleSelected.subscribe((availableStock) => {
52
54
  this._handleReturnStock(availableStock);
53
55
  }));
56
+ this.request.purchaseOrderLineReceiptDetailsDTOS = [this.receiptDetails];
57
+ const timeElapsed = Date.now();
58
+ this.request.receivedDate = new Date(timeElapsed);
54
59
  }
55
60
  ngOnDestroy() {
56
61
  this._subscriptions.forEach((subscription) => subscription.unsubscribe());
57
62
  }
63
+ ngAfterViewInit() {
64
+ this.reloadReceivingGoodsHistory.next();
65
+ }
58
66
  submit() {
59
67
  return this._formMaster.submitSlaves();
60
68
  }
@@ -83,12 +91,6 @@ export class ReceiveGoodsRequestComponent {
83
91
  this.saveButtonDisabled = false;
84
92
  }
85
93
  }
86
- openWarehouseLocationDialog() {
87
- if (!this.returnStockMode()) {
88
- this._dialogService.showWarehouseLocation(this.receiptDetails.warehouseNr, true, true, true, this.transactionLine)
89
- .then(() => this.receiptDetails.locationNr = this.transactionLine.locationNr);
90
- }
91
- }
92
94
  returnStockMode() {
93
95
  return this.transactionLine.amount < 0;
94
96
  }
@@ -98,6 +100,7 @@ export class ReceiveGoodsRequestComponent {
98
100
  this.receiptDetails.quantityToReceive = this.returnMaxToReceive;
99
101
  this.receiptDetails.warehouseNr = availableStock.warehouseNumber;
100
102
  this.receiptDetails.locationNr = availableStock.locationNumber;
103
+ this.selectedLocation = this.receiptDetails.locationNr;
101
104
  this.receiptDetails.serialNr = availableStock.serialNumber;
102
105
  this.receiptDetails.batchNr = availableStock.batchNumber;
103
106
  this.receiptDetails.lineNr = this.transactionLine.lineNr;
@@ -108,18 +111,22 @@ ReceiveGoodsRequestComponent.decorators = [
108
111
  selector: "co-receive-goods-request",
109
112
  template: `
110
113
  <co-form>
111
- <div class="details-header" [textContent]="returnStockMode() ? ('RETURN_DETAILS' | localize | uppercase) : ('RECEIPT_DETAILS' | localize | uppercase)"></div>
114
+ <div class="header-wrapper">
115
+ <div class="details-header" [textContent]="returnStockMode() ? ('RETURN_DETAILS' | localize | uppercase) : ('RECEIPT_DETAILS' | localize | uppercase)"></div>
116
+ <co-transaction-line-statusbar class="status-bar-wrapper" [transaction]="transactionLine" [transactionKind]="transactionKind.SalesOrder" [transactionTypeCategory]="transactionTypeCategory.PurchaseOrderReceivedGoods"></co-transaction-line-statusbar>
117
+ </div>
112
118
  <div class="columns-wrapper">
113
119
  <div class="details-column">
114
- <co-input-text class="details-input"
115
- [max]="returnStockMode() ? returnMaxToReceive : amountLeftToReceive"
116
- [(model)]="receiptDetails.serialNr ? 1 : receiptDetails.quantityToReceive"
117
- [disabled]="!!receiptDetails.serialNr || receiptDetails.quantityToReceive === 0"
118
- [readonly]="!!receiptDetails.serialNr || receiptDetails.quantityToReceive === 0 || readonly"
119
- [required]="true"
120
- [type]="'number'"
121
- [min]="1"
122
- [placeholder]="'AMOUNT' | localize"></co-input-text>
120
+ <div class="transaction-line-totals-amount">
121
+ <co-input-number-picker class="amount-number-picker"
122
+ [max]="returnStockMode() ? returnMaxToReceive : amountLeftToReceive"
123
+ [(model)]="receiptDetails.serialNr ? 1 : receiptDetails.quantityToReceive"
124
+ [min]="1"
125
+ [readonly]="!!receiptDetails.serialNr || receiptDetails.quantityToReceive === 0 || !receiptDetails.quantityToReceive || readonly"
126
+ [disabled]="!!receiptDetails.serialNr || receiptDetails.quantityToReceive === 0 || !receiptDetails.quantityToReceive"
127
+ [required]="true"
128
+ ></co-input-number-picker>
129
+ </div>
123
130
  <co-input-text class="details-input" [(model)]="receiptDetails.warehouseNr"
124
131
  [type]="'number'"
125
132
  [hideArrowButtons]="true"
@@ -127,10 +134,9 @@ ReceiveGoodsRequestComponent.decorators = [
127
134
  [disabled]="transactionLine.warehouseNumber !== undefined || returnStockMode()"
128
135
  [required]="transactionLine.isWarehouseRequired"
129
136
  [placeholder]="'WAREHOUSE' | localize"></co-input-text>
130
- <div class="location-wrapper" [class.clickable]="!returnStockMode()" (click)="openWarehouseLocationDialog()">
131
- <span *ngIf="!receiptDetails.locationNr && transactionLine.isLocationRequired" class="required" [textContent]="'*'"></span>
132
- <co-icon *ngIf="receiptDetails.locationNr" [iconData]="iconCacheService.getIcon(icons.ShelvesLight)"></co-icon>
133
- <div [textContent]="receiptDetails.locationNr ? receiptDetails.locationNr : ('LOCATION' | localize)"></div>
137
+ <div class="location-wrapper">
138
+ <!-- <span *ngIf="!receiptDetails.locationNr && transactionLine.isLocationRequired" class="required" [textContent]="'*'"></span>-->
139
+ <co-transaction-line-warehouse-location-button [locationNr]="selectedLocation" [readonly]="returnStockMode() || receiptDetails.quantityToReceive === 0" [line]="transactionLine" (locationSelected)="receiptDetails.locationNr = $event"></co-transaction-line-warehouse-location-button>
134
140
  </div>
135
141
  <co-input-text class="details-input"
136
142
  *ngIf="!returnStockMode()"
@@ -187,9 +193,9 @@ ReceiveGoodsRequestComponent.ctorParameters = () => [
187
193
  { type: TransactionReceiveGoodsService }
188
194
  ];
189
195
  ReceiveGoodsRequestComponent.propDecorators = {
190
- amountLeftToReceive: [{ type: Input }],
191
196
  transactionLine: [{ type: Input }],
197
+ amountLeftToReceive: [{ type: Input }],
192
198
  reloadReceivingGoodsHistory: [{ type: Output }],
193
199
  showClass: [{ type: HostBinding, args: ["class.co-transaction-receiving-goods-details",] }]
194
200
  };
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZWl2ZS1nb29kcy1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNpZGUtcGFuZWwtZWRpdC1yZXF1ZXN0LWRldGFpbHMvY29tcG9uZW50cy9yZWNlaXZlLWdvb2RzLXJlcXVlc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU3QyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0sNkVBQTZFLENBQUM7QUFDckYsT0FBTyxFQUNMLG1DQUFtQyxFQUNwQyxNQUFNLGtGQUFrRixDQUFDO0FBRTFGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUNMLDhCQUE4QixFQUMvQixNQUFNLGlHQUFpRyxDQUFDO0FBNEV6RyxNQUFNLE9BQU8sNEJBQTRCO0lBNkN2QyxZQUNTLGdCQUFrQyxFQUNqQyxXQUE4QixFQUM5QixRQUE0QixFQUM1QixlQUErQixFQUMvQixjQUE2QixFQUM3QixvQkFBb0Q7UUFMckQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxnQkFB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Q0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWxGTyxnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsYUFBYTtZQUVuQiw4QkFBOEI7OztrQ0FnRjdCLEtBQUs7OEJBTUwsS0FBSzswQ0FRTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyw4Q0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtcclxuICBQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHREZXRhaWxzXHJcbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wdXJjaGFzZS1vcmRlci1saW5lLXJlY2VpcHQtZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge1xyXG4gIFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJSZXF1ZXN0XHJcbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWNlaXZlLWdvb2RzLWZvci1wdXJjaGFzZS1vcmRlci1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0FydGljbGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9hcnRpY2xlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uUmVjZWl2ZUdvb2RzU2VydmljZVxyXG59IGZyb20gXCIuLi8uLi90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXJlY2VpdmUtZ29vZHMtbGluZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlY2VpdmUtZ29vZHMuc2VydmljZVwiO1xyXG5pbXBvcnQge0F2YWlsYWJsZVN0b2NrfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2F2YWlsYWJsZS1zdG9jay5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tcmVjZWl2ZS1nb29kcy1yZXF1ZXN0XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1mb3JtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwicmV0dXJuU3RvY2tNb2RlKCkgPyAoJ1JFVFVSTl9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKSA6ICgnUkVDRUlQVF9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1ucy13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cImRldGFpbHMtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJyZXR1cm5TdG9ja01vZGUoKSA/IHJldHVybk1heFRvUmVjZWl2ZSA6IGFtb3VudExlZnRUb1JlY2VpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMuc2VyaWFsTnIgPyAxIDogcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcmVjZWlwdERldGFpbHMuc2VyaWFsTnIgfHwgcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEhcmVjZWlwdERldGFpbHMuc2VyaWFsTnIgfHwgcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDAgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQU1PVU5UJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkIHx8IHJlYWRvbmx5IHx8IHJldHVyblN0b2NrTW9kZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyICE9PSB1bmRlZmluZWQgfHwgcmV0dXJuU3RvY2tNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc1dhcmVob3VzZVJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInV0FSRUhPVVNFJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLXdyYXBwZXJcIiBbY2xhc3MuY2xpY2thYmxlXT1cIiFyZXR1cm5TdG9ja01vZGUoKVwiIChjbGljayk9XCJvcGVuV2FyZWhvdXNlTG9jYXRpb25EaWFsb2coKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yICYmIHRyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCIgW3RleHRDb250ZW50XT1cIicqJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5TaGVsdmVzTGlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yID8gcmVjZWlwdERldGFpbHMubG9jYXRpb25OciA6ICgnTE9DQVRJT04nIHwgbG9jYWxpemUpXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXR1cm5TdG9ja01vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJyZXF1ZXN0LnBhY2tpbmdTbGlwTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQQUNLSU5HX1NMSVAnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1jb2x1bW5cIj5cclxuICAgICAgICAgIDxjby1pbnB1dC1kYXRlIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJyZXF1ZXN0LnJlY2VpdmVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgPjwvY28taW5wdXQtZGF0ZT5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzQmF0Y2hOclJlcXVpcmVkXCIgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMuYmF0Y2hOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCByZXR1cm5TdG9ja01vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmV0dXJuU3RvY2tNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLnNlcmlhbE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IHJldHVyblN0b2NrTW9kZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXR1cm5TdG9ja01vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OVU1CRVInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9jby1mb3JtPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb21taXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1pdC1idXR0b24gY2xpY2thYmxlXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiAoY2xpY2spPVwiaGFuZGxlU2F2ZURldGFpbHNFZGl0KClcIiBbY2xhc3MuZGlzYWJsZWRdPVwic2F2ZUJ1dHRvbkRpc2FibGVkIHx8IGFtb3VudExlZnRUb1JlY2VpdmUgPT09IDBcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1pdC10ZXh0XCIgW3RleHRDb250ZW50XT1cInJldHVyblN0b2NrTW9kZSgpID8gKCdSRVRVUk5fU1RPQ0snIHwgbG9jYWxpemUpIDogKCdSRUNFSVZFJyB8IGxvY2FsaXplKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2VcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY2VpdmVHb29kc1JlcXVlc3RDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYW1vdW50TGVmdFRvUmVjZWl2ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9hbW91bnRMZWZ0VG9SZWNlaXZlID0gdmFsdWU7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25MaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmUgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuaGFzSW52b2ljZXM7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLndhcmVob3VzZU5yID0gdmFsdWUud2FyZWhvdXNlTnVtYmVyO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5saW5lTnIgPSB2YWx1ZS5saW5lTnI7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVsb2FkUmVjZWl2aW5nR29vZHNIaXN0b3J5OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLXJlY2VpdmluZy1nb29kcy1kZXRhaWxzXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGFtb3VudExlZnRUb1JlY2VpdmUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hbW91bnRMZWZ0VG9SZWNlaXZlO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25MaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTGluZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWNlaXB0RGV0YWlsczogUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlscyA9IG5ldyBQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHREZXRhaWxzKCk7XHJcbiAgcHVibGljIHJlcXVlc3Q6IFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJSZXF1ZXN0ID0gbmV3IFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHNhdmVCdXR0b25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2NhdGlvbnM6IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBsb2NhdGlvbkRyb3Bkb3duRmllbGRzOiB7fSA9IHt0ZXh0OiBcImxvY2F0aW9uTm9cIiwgdmFsdWU6IFwibG9jYXRpb25Ob1wifTtcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmV0dXJuTWF4VG9SZWNlaXZlOiBudW1iZXI7XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuICBwcml2YXRlIF9hbW91bnRMZWZ0VG9SZWNlaXZlOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2Zvcm1NYXN0ZXI6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYXJ0aWNsZVNlcnZpY2U6IEFydGljbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlY2VpdmVHb29kc1NlcnZpY2U6IFRyYW5zYWN0aW9uUmVjZWl2ZUdvb2RzU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5yZXF1ZXN0LnB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdERldGFpbHNEVE9TID0gW3RoaXMucmVjZWlwdERldGFpbHNdO1xyXG4gICAgY29uc3QgdGltZUVsYXBzZWQ6IG51bWJlciA9IERhdGUubm93KCk7XHJcbiAgICB0aGlzLnJlcXVlc3QucmVjZWl2ZWREYXRlID0gbmV3IERhdGUodGltZUVsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLl9yZWNlaXZlR29vZHNTZXJ2aWNlLnJldHVybkFydGljbGVTZWxlY3RlZC5zdWJzY3JpYmUoKGF2YWlsYWJsZVN0b2NrOiBBdmFpbGFibGVTdG9jaykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZVJldHVyblN0b2NrKGF2YWlsYWJsZVN0b2NrKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybU1hc3Rlci5zdWJtaXRTbGF2ZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWQgfHxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmlzQmF0Y2hOclJlcXVpcmVkIHx8XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZURldGFpbHNFZGl0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgY29uc3QgcmVxdWVzdDogUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3QgPSB0aGlzLnJlcXVlc3Q7XHJcbiAgICAgIHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLnJldHVyblN0b2NrTW9kZSgpID9cclxuICAgICAgICAtdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA6IHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmU7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMuX3NlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgdGhpcy5fc2VydmljZS5yZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyKHJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnJldHVyblN0b2NrTW9kZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLl9yZWNlaXZlR29vZHNTZXJ2aWNlLnJlbG9hZEF2YWlsYWJsZVN0b2NrRGF0YS5uZXh0KCk7XHJcbiAgICAgICAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVsb2FkUmVjZWl2aW5nR29vZHNIaXN0b3J5Lm5leHQoKTtcclxuICAgICAgfSkuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmVCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zYXZlQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuV2FyZWhvdXNlTG9jYXRpb25EaWFsb2coKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmV0dXJuU3RvY2tNb2RlKCkpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93V2FyZWhvdXNlTG9jYXRpb24odGhpcy5yZWNlaXB0RGV0YWlscy53YXJlaG91c2VOciwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdGhpcy50cmFuc2FjdGlvbkxpbmUpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5yZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yID0gKDxhbnk+dGhpcy50cmFuc2FjdGlvbkxpbmUpLmxvY2F0aW9uTnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJldHVyblN0b2NrTW9kZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnQgPCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlUmV0dXJuU3RvY2soYXZhaWxhYmxlU3RvY2s6IEF2YWlsYWJsZVN0b2NrKTogdm9pZCB7XHJcbiAgICBjb25zdCBtYXhUb1JldHVybiA9IHRoaXMuYW1vdW50TGVmdFRvUmVjZWl2ZSA8IDAgPyBNYXRoLmFicyh0aGlzLmFtb3VudExlZnRUb1JlY2VpdmUpIDogdGhpcy5hbW91bnRMZWZ0VG9SZWNlaXZlO1xyXG4gICAgdGhpcy5yZXR1cm5NYXhUb1JlY2VpdmUgPSBtYXhUb1JldHVybiA+IGF2YWlsYWJsZVN0b2NrLmF2YWlsYWJsZVF1YW50aXR5ID8gYXZhaWxhYmxlU3RvY2suYXZhaWxhYmxlUXVhbnRpdHkgOiBtYXhUb1JldHVybjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLnJldHVybk1heFRvUmVjZWl2ZTtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnIgPSBhdmFpbGFibGVTdG9jay53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSBhdmFpbGFibGVTdG9jay5sb2NhdGlvbk51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMuc2VyaWFsTnIgPSBhdmFpbGFibGVTdG9jay5zZXJpYWxOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmJhdGNoTnIgPSBhdmFpbGFibGVTdG9jay5iYXRjaE51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMubGluZU5yID0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yO1xyXG4gIH1cclxufVxyXG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZWl2ZS1nb29kcy1yZXF1ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNpZGUtcGFuZWwtZWRpdC1yZXF1ZXN0LWRldGFpbHMvY29tcG9uZW50cy9yZWNlaXZlLWdvb2RzLXJlcXVlc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLDZFQUE2RSxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxtQ0FBbUMsRUFDcEMsTUFBTSxrRkFBa0YsQ0FBQztBQUUxRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSxpR0FBaUcsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDMUYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUE4RXJGLE1BQU0sT0FBTyw0QkFBNEI7SUFnRHZDLFlBQ1MsZ0JBQWtDLEVBQ2pDLFdBQThCLEVB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QkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdkZPLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxhQUFhO1lBRW5CLDhCQUE4Qjs7OzhCQXVGN0IsS0FBSztrQ0FRTCxLQUFLOzBDQVFMLE1BQU07d0JBR04sV0FBVyxTQUFDLDhDQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1xyXG4gIFB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdERldGFpbHNcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLW9yZGVyLWxpbmUtcmVjZWlwdC1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7XHJcbiAgUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3RcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlY2VpdmUtZ29vZHMtZm9yLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2FydGljbGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25SZWNlaXZlR29vZHNTZXJ2aWNlXHJcbn0gZnJvbSBcIi4uLy4uL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tcmVjZWl2ZS1nb29kcy1saW5lL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVjZWl2ZS1nb29kcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QXZhaWxhYmxlU3RvY2t9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXZhaWxhYmxlLXN0b2NrLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi8uLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tcmVjZWl2ZS1nb29kcy1yZXF1ZXN0XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1mb3JtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwicmV0dXJuU3RvY2tNb2RlKCkgPyAoJ1JFVFVSTl9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKSA6ICgnUkVDRUlQVF9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKVwiPjwvZGl2PlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2JhciBjbGFzcz1cInN0YXR1cy1iYXItd3JhcHBlclwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvbkxpbmVcIiBbdHJhbnNhY3Rpb25LaW5kXT1cInRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyXCIgW3RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1jb2x1bW5cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1hbW91bnRcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXIgY2xhc3M9XCJhbW91bnQtbnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwicmV0dXJuU3RvY2tNb2RlKCkgPyByZXR1cm5NYXhUb1JlY2VpdmUgOiBhbW91bnRMZWZ0VG9SZWNlaXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMuc2VyaWFsTnIgPyAxIDogcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISFyZWNlaXB0RGV0YWlscy5zZXJpYWxOciB8fCByZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9PT0gMCB8fCAhcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFyZWNlaXB0RGV0YWlscy5zZXJpYWxOciB8fCByZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9PT0gMCB8fCAhcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLndhcmVob3VzZU5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRyYW5zYWN0aW9uTGluZS53YXJlaG91c2VOdW1iZXIgIT09IHVuZGVmaW5lZCB8fCByZWFkb25seSB8fCByZXR1cm5TdG9ja01vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkIHx8IHJldHVyblN0b2NrTW9kZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNXYXJlaG91c2VSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yICYmIHRyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCIgW3RleHRDb250ZW50XT1cIicqJ1wiPjwvc3Bhbj4tLT5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWxvY2F0aW9uLWJ1dHRvbiBbbG9jYXRpb25Ocl09XCJzZWxlY3RlZExvY2F0aW9uXCIgW3JlYWRvbmx5XT1cInJldHVyblN0b2NrTW9kZSgpIHx8IHJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID09PSAwXCIgW2xpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCIgKGxvY2F0aW9uU2VsZWN0ZWQpPVwicmVjZWlwdERldGFpbHMubG9jYXRpb25OciA9ICRldmVudFwiPjwvY28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtbG9jYXRpb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cImRldGFpbHMtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcmV0dXJuU3RvY2tNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVxdWVzdC5wYWNraW5nU2xpcE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUEFDS0lOR19TTElQJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBjbGFzcz1cImRldGFpbHMtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVxdWVzdC5yZWNlaXZlZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLmJhdGNoTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgcmV0dXJuU3RvY2tNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJldHVyblN0b2NrTW9kZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNCYXRjaE5yUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSF9OVU1CRVInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWRcIiBjbGFzcz1cImRldGFpbHMtaW5wdXRcIiBbKG1vZGVsKV09XCJyZWNlaXB0RGV0YWlscy5zZXJpYWxOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCByZXR1cm5TdG9ja01vZGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmV0dXJuU3RvY2tNb2RlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTlVNQkVSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvY28tZm9ybT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWl0LWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb21taXQtYnV0dG9uIGNsaWNrYWJsZVwiICpuZ0lmPVwiIXJlYWRvbmx5XCIgKGNsaWNrKT1cImhhbmRsZVNhdmVEZXRhaWxzRWRpdCgpXCIgW2NsYXNzLmRpc2FibGVkXT1cInNhdmVCdXR0b25EaXNhYmxlZCB8fCBhbW91bnRMZWZ0VG9SZWNlaXZlID09PSAwXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21taXQtdGV4dFwiIFt0ZXh0Q29udGVudF09XCJyZXR1cm5TdG9ja01vZGUoKSA/ICgnUkVUVVJOX1NUT0NLJyB8IGxvY2FsaXplKSA6ICgnUkVDRUlWRScgfCBsb2NhbGl6ZSlcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNlaXZlR29vZHNSZXF1ZXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25MaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmUgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuaGFzSW52b2ljZXM7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLndhcmVob3VzZU5yID0gdmFsdWUud2FyZWhvdXNlTnVtYmVyO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5saW5lTnIgPSB2YWx1ZS5saW5lTnI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYW1vdW50TGVmdFRvUmVjZWl2ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9hbW91bnRMZWZ0VG9SZWNlaXZlID0gdmFsdWU7XHJcbiAgICBpZiAoIXRoaXMucmV0dXJuU3RvY2tNb2RlKCkpIHtcclxuICAgICAgdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlbG9hZFJlY2VpdmluZ0dvb2RzSGlzdG9yeTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1yZWNlaXZpbmctZ29vZHMtZGV0YWlsc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgcHVibGljIGdldCBhbW91bnRMZWZ0VG9SZWNlaXZlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW1vdW50TGVmdFRvUmVjZWl2ZTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uTGluZSgpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVjZWlwdERldGFpbHM6IFB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdERldGFpbHMgPSBuZXcgUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlscygpO1xyXG4gIHB1YmxpYyByZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCA9IG5ldyBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyBzYXZlQnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmV0dXJuTWF4VG9SZWNlaXZlOiBudW1iZXI7XHJcbiAgcHVibGljIHNlbGVjdGVkTG9jYXRpb246IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHByaXZhdGUgX2Ftb3VudExlZnRUb1JlY2VpdmU6IG51bWJlcjtcclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hcnRpY2xlU2VydmljZTogQXJ0aWNsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVjZWl2ZUdvb2RzU2VydmljZTogVHJhbnNhY3Rpb25SZWNlaXZlR29vZHNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLl9yZWNlaXZlR29vZHNTZXJ2aWNlLnJldHVybkFydGljbGVTZWxlY3RlZC5zdWJzY3JpYmUoKGF2YWlsYWJsZVN0b2NrOiBBdmFpbGFibGVTdG9jaykgPT4ge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZVJldHVyblN0b2NrKGF2YWlsYWJsZVN0b2NrKTtcclxuICAgICAgfSlcclxuICAgIClcclxuXHJcbiAgICB0aGlzLnJlcXVlc3QucHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlsc0RUT1MgPSBbdGhpcy5yZWNlaXB0RGV0YWlsc107XHJcbiAgICBjb25zdCB0aW1lRWxhcHNlZDogbnVtYmVyID0gRGF0ZS5ub3coKTtcclxuICAgIHRoaXMucmVxdWVzdC5yZWNlaXZlZERhdGUgPSBuZXcgRGF0ZSh0aW1lRWxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWxvYWRSZWNlaXZpbmdHb29kc0hpc3RvcnkubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtTWFzdGVyLnN1Ym1pdFNsYXZlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmlzTG9jYXRpb25SZXF1aXJlZCB8fFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmUuaXNCYXRjaE5yUmVxdWlyZWQgfHxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTYXZlRGV0YWlsc0VkaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMuc3VibWl0KCk7XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgdGhpcy5zYXZlQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCA9IHRoaXMucmVxdWVzdDtcclxuICAgICAgdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9IHRoaXMucmV0dXJuU3RvY2tNb2RlKCkgP1xyXG4gICAgICAgIC10aGlzLnJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlIDogdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZTtcclxuICAgICAgcmVxdWVzdC50cmFuc0lkID0gdGhpcy5fc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXIocmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMucmV0dXJuU3RvY2tNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuX3JlY2VpdmVHb29kc1NlcnZpY2UucmVsb2FkQXZhaWxhYmxlU3RvY2tEYXRhLm5leHQoKTtcclxuICAgICAgICAgIHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWxvYWRSZWNlaXZpbmdHb29kc0hpc3RvcnkubmV4dCgpO1xyXG4gICAgICB9KS5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2F2ZUJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNhdmVCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJldHVyblN0b2NrTW9kZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnQgPCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlUmV0dXJuU3RvY2soYXZhaWxhYmxlU3RvY2s6IEF2YWlsYWJsZVN0b2NrKTogdm9pZCB7XHJcbiAgICBjb25zdCBtYXhUb1JldHVybiA9IHRoaXMuYW1vdW50TGVmdFRvUmVjZWl2ZSA8IDAgPyBNYXRoLmFicyh0aGlzLmFtb3VudExlZnRUb1JlY2VpdmUpIDogdGhpcy5hbW91bnRMZWZ0VG9SZWNlaXZlO1xyXG4gICAgdGhpcy5yZXR1cm5NYXhUb1JlY2VpdmUgPSBtYXhUb1JldHVybiA+IGF2YWlsYWJsZVN0b2NrLmF2YWlsYWJsZVF1YW50aXR5ID8gYXZhaWxhYmxlU3RvY2suYXZhaWxhYmxlUXVhbnRpdHkgOiBtYXhUb1JldHVybjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLnJldHVybk1heFRvUmVjZWl2ZTtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnIgPSBhdmFpbGFibGVTdG9jay53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSBhdmFpbGFibGVTdG9jay5sb2NhdGlvbk51bWJlcjtcclxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMuc2VyaWFsTnIgPSBhdmFpbGFibGVTdG9jay5zZXJpYWxOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmJhdGNoTnIgPSBhdmFpbGFibGVTdG9jay5iYXRjaE51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMubGluZU5yID0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,10 +1,12 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { TransactionSidePanelEditRequestDetailsComponent } from "./transaction-side-panel-edit-request-details.component";
4
- import { FormModule, IconModule, InputDatePickerModule, InputTextModule } from "@colijnit/corecomponents_v12";
4
+ import { FormModule, IconModule, InputDatePickerModule, InputNumberPickerModule, InputTextModule } from "@colijnit/corecomponents_v12";
5
5
  import { AllocationRequestComponent } from "./components/allocation-request.component";
6
6
  import { ReceiveGoodsRequestComponent } from "./components/receive-goods-request.component";
7
7
  import { PipeModule } from "../../pipe/pipe.module";
8
+ import { TransactionLineWarehouseLocationButtonModule } from "../transaction-line-fields/transaction-line-warehouse-location-button.module";
9
+ import { TransactionLineStatusbarModule } from "../transaction-line-statusbar/transaction-line-statusbar.module";
8
10
  export class TransactionSidePanelEditRequestDetailsModule {
9
11
  }
10
12
  TransactionSidePanelEditRequestDetailsModule.decorators = [
@@ -15,7 +17,10 @@ TransactionSidePanelEditRequestDetailsModule.decorators = [
15
17
  InputTextModule,
16
18
  PipeModule,
17
19
  IconModule,
18
- InputDatePickerModule
20
+ InputDatePickerModule,
21
+ TransactionLineWarehouseLocationButtonModule,
22
+ InputNumberPickerModule,
23
+ TransactionLineStatusbarModule
19
24
  ],
20
25
  declarations: [
21
26
  TransactionSidePanelEditRequestDetailsComponent,
@@ -27,4 +32,4 @@ TransactionSidePanelEditRequestDetailsModule.decorators = [
27
32
  ]
28
33
  },] }
29
34
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2lkZS1wYW5lbC1lZGl0LXJlcXVlc3QtZGV0YWlscy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zaWRlLXBhbmVsLWVkaXQtcmVxdWVzdC1kZXRhaWxzL3RyYW5zYWN0aW9uLXNpZGUtcGFuZWwtZWRpdC1yZXF1ZXN0LWRldGFpbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQywrQ0FBK0MsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3hILE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQXFCbEQsTUFBTSxPQUFPLDRDQUE0Qzs7O1lBbEJ4RCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixlQUFlO29CQUNmLFVBQVU7b0JBQ1YsVUFBVTtvQkFDVixxQkFBcUI7aUJBQ3RCO2dCQUNELFlBQVksRUFBRTtvQkFDWiwrQ0FBK0M7b0JBQy9DLDBCQUEwQjtvQkFDMUIsNEJBQTRCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsK0NBQStDO2lCQUNoRDthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNpZGVQYW5lbEVkaXRSZXF1ZXN0RGV0YWlsc0NvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tc2lkZS1wYW5lbC1lZGl0LXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3JtTW9kdWxlLCBJY29uTW9kdWxlLCBJbnB1dERhdGVQaWNrZXJNb2R1bGUsIElucHV0VGV4dE1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtBbGxvY2F0aW9uUmVxdWVzdENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9hbGxvY2F0aW9uLXJlcXVlc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UmVjZWl2ZUdvb2RzUmVxdWVzdENvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9yZWNlaXZlLWdvb2RzLXJlcXVlc3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSBcIi4uLy4uL3BpcGUvcGlwZS5tb2R1bGVcIjtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1Nb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBQaXBlTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZSxcclxuICAgIElucHV0RGF0ZVBpY2tlck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUcmFuc2FjdGlvblNpZGVQYW5lbEVkaXRSZXF1ZXN0RGV0YWlsc0NvbXBvbmVudCxcclxuICAgIEFsbG9jYXRpb25SZXF1ZXN0Q29tcG9uZW50LFxyXG4gICAgUmVjZWl2ZUdvb2RzUmVxdWVzdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNhY3Rpb25TaWRlUGFuZWxFZGl0UmVxdWVzdERldGFpbHNDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNpZGVQYW5lbEVkaXRSZXF1ZXN0RGV0YWlsc01vZHVsZSB7XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2lkZS1wYW5lbC1lZGl0LXJlcXVlc3QtZGV0YWlscy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zaWRlLXBhbmVsLWVkaXQtcmVxdWVzdC1kZXRhaWxzL3RyYW5zYWN0aW9uLXNpZGUtcGFuZWwtZWRpdC1yZXF1ZXN0LWRldGFpbHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQywrQ0FBK0MsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3hILE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZUFBZSxFQUNoQixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0gsNENBQTRDLEVBQy9DLE1BQU0sOEVBQThFLENBQUM7QUFDdEYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUF3Qi9HLE1BQU0sT0FBTyw0Q0FBNEM7OztZQXJCeEQsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFVBQVU7b0JBQ1YsZUFBZTtvQkFDZixVQUFVO29CQUNWLFVBQVU7b0JBQ1YscUJBQXFCO29CQUNyQiw0Q0FBNEM7b0JBQzVDLHVCQUF1QjtvQkFDdkIsOEJBQThCO2lCQUMvQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osK0NBQStDO29CQUMvQywwQkFBMEI7b0JBQzFCLDRCQUE0QjtpQkFDN0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLCtDQUErQztpQkFDaEQ7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TaWRlUGFuZWxFZGl0UmVxdWVzdERldGFpbHNDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLXNpZGUtcGFuZWwtZWRpdC1yZXF1ZXN0LWRldGFpbHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgRm9ybU1vZHVsZSxcclxuICBJY29uTW9kdWxlLFxyXG4gIElucHV0RGF0ZVBpY2tlck1vZHVsZSxcclxuICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcclxuICBJbnB1dFRleHRNb2R1bGVcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0FsbG9jYXRpb25SZXF1ZXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2FsbG9jYXRpb24tcmVxdWVzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtSZWNlaXZlR29vZHNSZXF1ZXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL3JlY2VpdmUtZ29vZHMtcmVxdWVzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tIFwiLi4vLi4vcGlwZS9waXBlLm1vZHVsZVwiO1xyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNhY3Rpb25MaW5lV2FyZWhvdXNlTG9jYXRpb25CdXR0b25Nb2R1bGVcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tbGluZS1maWVsZHMvdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtbG9jYXRpb24tYnV0dG9uLm1vZHVsZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVN0YXR1c2Jhck1vZHVsZX0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyL3RyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyLm1vZHVsZVwiO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybU1vZHVsZSxcclxuICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlLFxyXG4gICAgSW5wdXREYXRlUGlja2VyTW9kdWxlLFxyXG4gICAgVHJhbnNhY3Rpb25MaW5lV2FyZWhvdXNlTG9jYXRpb25CdXR0b25Nb2R1bGUsXHJcbiAgICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcclxuICAgIFRyYW5zYWN0aW9uTGluZVN0YXR1c2Jhck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUcmFuc2FjdGlvblNpZGVQYW5lbEVkaXRSZXF1ZXN0RGV0YWlsc0NvbXBvbmVudCxcclxuICAgIEFsbG9jYXRpb25SZXF1ZXN0Q29tcG9uZW50LFxyXG4gICAgUmVjZWl2ZUdvb2RzUmVxdWVzdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNhY3Rpb25TaWRlUGFuZWxFZGl0UmVxdWVzdERldGFpbHNDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNpZGVQYW5lbEVkaXRSZXF1ZXN0RGV0YWlsc01vZHVsZSB7XHJcbn1cclxuIl19