@colijnit/transaction 12.1.134 → 12.1.136

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 (76) hide show
  1. package/bundles/colijnit-transaction.umd.js +551 -625
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +463 -468
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +464 -469
  6. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +7 -3
  7. package/esm2015/lib/component/transaction/transaction.component.js +96 -89
  8. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +31 -19
  9. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +4 -2
  10. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +36 -16
  11. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +30 -21
  12. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +48 -18
  13. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +19 -9
  14. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +6 -3
  15. package/esm2015/lib/component/transaction-header-fields/transaction-header-payment-button/transaction-header-payment-button.component.js +2 -2
  16. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.js +34 -41
  17. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.js +98 -112
  18. 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 +94 -120
  19. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.js +17 -18
  20. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.js +22 -15
  21. 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 +13 -13
  22. package/esm2015/lib/enum/icon.enum.js +2 -1
  23. package/esm2015/lib/model/Settings.js +4 -0
  24. package/esm2015/lib/model/icon-svg.js +2 -1
  25. package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
  26. package/esm2015/lib/service/options.service.js +8 -31
  27. package/esm2015/lib/service/relation-connector.service.js +4 -2
  28. package/esm2015/lib/service/transaction-base.service.js +2 -2
  29. package/esm2015/lib/service/transaction-connector-adapter.service.js +3 -3
  30. package/esm2015/lib/service/transaction-connector.service.js +3 -3
  31. package/esm2015/lib/transaction-version.js +3 -3
  32. package/esm2015/public_api.js +6 -1
  33. package/fesm2015/colijnit-transaction.js +541 -505
  34. package/fesm2015/colijnit-transaction.js.map +1 -1
  35. package/lib/component/core/base/components/transaction-header-block/style/_layout.scss +27 -0
  36. package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +12 -3
  37. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.d.ts +1 -0
  38. package/lib/component/transaction/transaction.component.d.ts +3 -2
  39. package/lib/component/transaction-button-bar/style/_material-definition.scss +1 -1
  40. package/lib/component/transaction-document-button/style/_layout.scss +59 -0
  41. package/lib/component/transaction-document-button/style/_material-definition.scss +9 -0
  42. package/lib/component/transaction-document-button/style/_theme.scss +5 -0
  43. package/lib/component/transaction-document-button/style/material.scss +4 -0
  44. package/lib/component/transaction-header/style/_layout.scss +1 -1
  45. package/lib/component/transaction-header/style/_material-definition.scss +1 -1
  46. package/lib/component/transaction-header/transaction-header/style/_layout.scss +35 -1
  47. package/lib/component/transaction-header/transaction-header/style/_material-definition.scss +11 -2
  48. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +5 -0
  49. package/lib/component/transaction-header/transaction-header-delivery/style/_layout.scss +57 -11
  50. package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +22 -2
  51. package/lib/component/transaction-header/transaction-header-delivery/style/_theme.scss +6 -2
  52. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +11 -5
  53. package/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +8 -4
  54. package/lib/component/transaction-header/transaction-header-order/style/_theme.scss +1 -0
  55. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +46 -0
  56. package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +17 -0
  57. package/lib/component/transaction-header/transaction-header-popup/style/_material-definition.scss +15 -0
  58. package/lib/component/transaction-header/transaction-header-relation/style/_layout.scss +47 -0
  59. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +2 -0
  60. package/lib/component/transaction-header-fields/transaction-header-deliverydate-definitive-button/style/_layout.scss +19 -3
  61. package/lib/component/transaction-header-fields/transaction-header-deliverydate-definitive-button/style/_material-definition.scss +8 -3
  62. package/lib/component/transaction-header-fields/transaction-header-payment-button/style/_material-definition.scss +1 -1
  63. package/lib/component/transaction-header-fields/transaction-header-payment-button/style/_theme.scss +1 -1
  64. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.d.ts +2 -1
  65. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.d.ts +6 -2
  66. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +2 -1
  67. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.d.ts +6 -6
  68. package/lib/enum/icon.enum.d.ts +1 -0
  69. package/lib/model/Settings.d.ts +3 -0
  70. package/lib/res/dictionary/dictionaries.d.ts +4 -0
  71. package/lib/service/options.service.d.ts +2 -2
  72. package/lib/service/transaction-connector-adapter.service.d.ts +10 -10
  73. package/lib/service/transaction-connector.service.d.ts +7 -7
  74. package/lib/style/_variables.scss +4 -1
  75. package/package.json +4 -4
  76. package/public_api.d.ts +5 -0
@@ -1,5 +1,5 @@
1
1
  import { Component, HostBinding } from '@angular/core';
2
- import { FilterViewmodel } from '@colijnit/corecomponents_v12';
2
+ import { FilterItemMode, FilterViewmodel } from '@colijnit/corecomponents_v12';
3
3
  import { TransactionService } from '../../../../../service/transaction.service';
4
4
  import { TransactionFilterContentBaseComponent } from '../../../../core/base/transaction-filter-content-base.component';
5
5
  import { FilterRequestService } from '../../../service/filter-request.service';
@@ -14,6 +14,7 @@ export class TransactionPurchaseOrderFilterContentOrderComponent extends Transac
14
14
  this.filterRequestService = filterRequestService;
15
15
  this.transactionService = transactionService;
16
16
  this.relationService = relationService;
17
+ this.modes = FilterItemMode;
17
18
  this.purchasePersonsFields = { text: "name", value: "relationId" };
18
19
  this.tagsFields = { text: "description", value: "tagValueId" };
19
20
  this.branchFields = { text: "familyName", value: "relationId" };
@@ -74,140 +75,113 @@ TransactionPurchaseOrderFilterContentOrderComponent.decorators = [
74
75
  { type: Component, args: [{
75
76
  selector: 'co-transaction-purchase-order-filter-content-order',
76
77
  template: `
77
- <div class="transaction-filter-content-order-wrapper transaction-filter-content-wrapper" lazyRenderMaster>
78
+ <div class="transaction-filter-content-order-wrapper transaction-filter-content-wrapper">
78
79
 
79
- <!--Inkoopnummer-->
80
- <div class="filter-item-wrapper" lazyRender #lazyRenderTransNr="lazyRender">
81
- <co-transaction-filter-item *ngIf="lazyRenderTransNr.isShowing"
82
- [placeholder]="'PURCHASENUMBER'"
83
- [customContent]="true">
84
- <co-input-text [(model)]="searchRequest.transNr"
85
- [placeholder]="searchPlaceholder.PurchaseNumber | localize"></co-input-text>
86
- </co-transaction-filter-item>
87
- </div>
80
+ <!--Inkoopnummer-->
81
+ <div class="filter-item-wrapper">
82
+ <co-transaction-filter-item [placeholder]="'PURCHASENUMBER'"
83
+ [(model)]="searchService.searchRequest.transNr"
84
+ [mode]="modes.TextField">
85
+ </co-transaction-filter-item>
86
+ </div>
88
87
 
89
- <!--Orderdatum-->
90
- <div class="filter-item-wrapper" lazyRender #lazyRenderTransDate="lazyRender">
91
- <co-transaction-filter-item *ngIf="lazyRenderTransDate.isShowing"
92
- [placeholder]="'ORDER_DATE'"
93
- [customContent]="true">
94
- <co-input-date-range
95
- [model]="[transStartDate, transEndDate]"
96
- (modelChange)="onDateRangeChange($event, 'rangeTransDate')"
97
- (cleared)="onClearedDateRangeChange('rangeTransDate')"
98
- [placeholder]="'SELECT_DATE' | localize">
99
- </co-input-date-range>
100
- </co-transaction-filter-item>
101
- </div>
88
+ <!--Orderdatum-->
89
+ <div class="filter-item-wrapper">
90
+ <co-transaction-filter-item [placeholder]="'ORDER_DATE'"
91
+ [(model)]="searchService.searchRequest.rangeTransDate"
92
+ [mode]="modes.DateRangeField">
93
+ </co-transaction-filter-item>
94
+ </div>
102
95
 
103
- <!--Leverdatum-->
104
- <div class="filter-item-wrapper" lazyRender #lazyRenderDeliveryDate="lazyRender">
105
- <co-transaction-filter-item *ngIf="lazyRenderDeliveryDate.isShowing"
106
- [placeholder]="'DELIVERY_DATE'"
107
- [customContent]="true">
108
- <co-input-date-range
109
- [model]="[deliveryStartDate, deliveryEndDate]"
110
- (modelChange)="onDateRangeChange($event, 'deliveryDateRange')"
111
- (cleared)="onClearedDateRangeChange('deliveryDateRange')"
112
- [placeholder]="'SELECT_DATE' | localize">
113
- </co-input-date-range>
114
- </co-transaction-filter-item>
115
- </div>
96
+ <!--Leverdatum-->
97
+ <div class="filter-item-wrapper">
98
+ <co-transaction-filter-item [placeholder]="'DELIVERY_DATE'"
99
+ [(model)]="searchService.searchRequest.deliveryDateRange"
100
+ [mode]="modes.DateRangeField">
101
+ </co-transaction-filter-item>
102
+ </div>
116
103
 
117
- <!--Filiaal-->
118
- <div class="filter-item-wrapper" lazyRender #lazyRenderBranch="lazyRender">
119
- <co-transaction-filter-item *ngIf="lazyRenderBranch.isShowing"
120
- [placeholder]="'BRANCH'"
121
- [searchCollectionPlaceholder]="searchPlaceholder.Branch"
122
- [collection]="branches"
123
- (collectionChange)="filterRequestService.handleCollectionChangeForRange($event, 'rangeBranchId')">
124
- </co-transaction-filter-item>
125
- </div>
104
+ <!--Filiaal-->
105
+ <div class="filter-item-wrapper">
106
+ <co-transaction-filter-item [placeholder]="'BRANCH'"
107
+ [collection]="branches"
108
+ [(model)]="searchService.searchRequest.rangeBranchId"
109
+ [mode]="modes.Filterlist">
110
+ </co-transaction-filter-item>
111
+ </div>
126
112
 
127
- <!--Inkoper-->
128
- <div class="filter-item-wrapper" lazyRender #lazyRenderSalesPerson="lazyRender">
129
- <co-transaction-filter-item *ngIf="lazyRenderSalesPerson.isShowing"
130
- [placeholder]="'PURCHASE_PERSON'"
131
- [searchCollectionPlaceholder]="searchPlaceholder.PurchasePerson"
132
- [collection]="purchasePersons"
133
- (collectionChange)="filterRequestService.handleCollectionChangeForRange($event, 'rangeSalesPerson')">
134
- </co-transaction-filter-item>
135
- </div>
113
+ <!--Inkoper-->
114
+ <div class="filter-item-wrapper">
115
+ <co-transaction-filter-item [placeholder]="'PURCHASE_PERSON'"
116
+ [searchCollectionPlaceholder]="searchPlaceholder.PurchasePerson"
117
+ [collection]="purchasePersons"
118
+ [(model)]="searchService.searchRequest.rangeSalesPerson"
119
+ [mode]="modes.Filterlist">
120
+ </co-transaction-filter-item>
121
+ </div>
136
122
 
137
- <!--Eigen referentie-->
138
- <div class="filter-item-wrapper" lazyRender #lazyRenderUserReference="lazyRender">
139
- <co-transaction-filter-item *ngIf="lazyRenderUserReference.isShowing"
140
- [placeholder]="'OWN_REFERENCE'"
141
- [customContent]="true">
142
- <co-input-text [(model)]="searchRequest.userReference"
143
- [placeholder]="searchPlaceholder.OwnReference | localize"></co-input-text>
144
- </co-transaction-filter-item>
145
- </div>
123
+ <!--Eigen referentie-->
124
+ <div class="filter-item-wrapper">
125
+ <co-transaction-filter-item [placeholder]="'OWN_REFERENCE'"
126
+ [(model)]="searchService.searchRequest.userReference"
127
+ [mode]="modes.TextField">
128
+ </co-transaction-filter-item>
129
+ </div>
146
130
 
147
- <!--Tags-->
148
- <div class="filter-item-wrapper" lazyRender #lazyRenderTags="lazyRender">
149
- <co-transaction-filter-item *ngIf="lazyRenderTags.isShowing"
150
- [placeholder]="'TAGS'"
151
- [searchCollectionPlaceholder]="searchPlaceholder.Tags"
152
- [collection]="tags"
153
- (collectionChange)="filterRequestService.handleCollectionChangeForRange($event, 'tagRange')">
154
- </co-transaction-filter-item>
155
- </div>
131
+ <!--Tags-->
132
+ <div class="filter-item-wrapper">
133
+ <co-transaction-filter-item [placeholder]="'TAGS'"
134
+ [searchCollectionPlaceholder]="searchPlaceholder.Tags"
135
+ [collection]="tags"
136
+ [(model)]="searchService.searchRequest.tagRange"
137
+ [mode]="modes.Filterlist">
138
+ </co-transaction-filter-item>
139
+ </div>
156
140
 
157
- <!--On hold codes-->
158
- <div class="filter-item-wrapper" lazyRender #lazyRenderOnHold="lazyRender">
159
- <co-transaction-filter-item *ngIf="lazyRenderOnHold.isShowing"
160
- [placeholder]="'ON_HOLD'"
161
- [searchCollectionPlaceholder]="searchPlaceholder.OnHold"
162
- [collection]="onHoldCodes"
163
- (collectionChange)="filterRequestService.handleCollectionChangeForRange($event,'rangeOnHoldCodes')">
164
- </co-transaction-filter-item>
165
- </div>
141
+ <!--On hold codes-->
142
+ <div class="filter-item-wrapper">
143
+ <co-transaction-filter-item [placeholder]="'ON_HOLD'"
144
+ [searchCollectionPlaceholder]="searchPlaceholder.OnHold"
145
+ [collection]="onHoldCodes"
146
+ [(model)]="searchService.searchRequest.rangeOnHoldCodes"
147
+ [mode]="modes.Filterlist">
148
+ </co-transaction-filter-item>
149
+ </div>
166
150
 
167
- <!--Commissiecode-->
168
- <div class="filter-item-wrapper" lazyRender #lazyRenderCommissionCode="lazyRender">
169
- <co-transaction-filter-item *ngIf="lazyRenderCommissionCode.isShowing"
170
- [placeholder]="'COMMISSION_CODE'"
171
- [searchCollectionPlaceholder]="searchPlaceholder.CommissionCode"
172
- [collection]="commissionCodes"
173
- (collectionChange)="filterRequestService.handleCollectionChangeForArray($event, 'commissionCodes')">
174
- </co-transaction-filter-item>
175
- </div>
176
-
177
- <!--Meer filters -->
178
- <div class="filter-item-wrapper" lazyRender #lazyRenderMore="lazyRender">
179
- <co-filter-item *ngIf="lazyRenderMore.isShowing"
180
- [placeholder]="'MORE_FILTERS' | localize"
181
- [customContent]="true"
182
- [filterButtonLabel]="filterButtonLabel | localize"
183
- (filterButtonClicked)="onFilterButtonClick()"
184
- [expanded]="false">
151
+ <!--Commissiecode-->
152
+ <div class="filter-item-wrapper">
153
+ <co-transaction-filter-item [placeholder]="'COMMISSION_CODE'"
154
+ [searchCollectionPlaceholder]="searchPlaceholder.CommissionCode"
155
+ [collection]="commissionCodes"
156
+ [(model)]="searchService.searchRequest.commissionCodes"
157
+ [mode]="modes.SelectListWithStringCollectionOutput">
158
+ </co-transaction-filter-item>
159
+ </div>
185
160
 
186
161
  <!--Order definitief-->
187
- <co-input-checkbox
188
- [model]="searchRequest.transactionDefinitive === 'J'"
189
- (modelChange)="filterRequestService.handleCheckboxValueChangeForString($event, 'transactionDefinitive')"
190
- [label]="'ORDER_DEFINITIVE' | localize"></co-input-checkbox>
162
+ <div class="filter-item-wrapper">
163
+ <co-transaction-filter-item [placeholder]="'ORDER_DEFINITIVE'"
164
+ [(model)]="searchService.searchRequest.transactionDefinitive"
165
+ [mode]="modes.CheckboxToText">
166
+ </co-transaction-filter-item>
167
+ </div>
191
168
 
192
169
  <!--Inactieve transacties-->
193
- <co-input-checkbox
194
- [model]="searchRequest.active === false"
195
- (modelChange)="searchRequest.active = !$event"
196
- [label]="'INACTIVE_TRANSACTIONS' | localize"
197
- ></co-input-checkbox>
170
+ <div class="filter-item-wrapper">
171
+ <co-transaction-filter-item [placeholder]="'INACTIVE_TRANSACTIONS'"
172
+ [(model)]="searchService.searchRequest.active"
173
+ [mode]="modes.Checkbox">
174
+ </co-transaction-filter-item>
175
+ </div>
198
176
 
199
177
  <!--Inclusief retouren -->
200
- <co-input-checkbox
201
- [label]="'INCLUDING_RETURNS' | localize"
202
- [model]="searchRequest.includingReturns === 1"
203
- (modelChange)="filterRequestService.handleCheckboxValueChangeForNumber($event, 'includingReturns')"
204
- >
205
- </co-input-checkbox>
206
-
207
- <!--Levermethode op (regel/header): nog niet in API -->
208
- </co-filter-item>
178
+ <div class="filter-item-wrapper">
179
+ <co-transaction-filter-item [placeholder]="'INCLUDING_RETURNS'"
180
+ [(model)]="searchService.searchRequest.includingReturns"
181
+ [mode]="modes.CheckboxToText">
182
+ </co-transaction-filter-item>
183
+ </div>
209
184
  </div>
210
- </div>
211
185
  `
212
186
  },] }
213
187
  ];
@@ -220,4 +194,4 @@ TransactionPurchaseOrderFilterContentOrderComponent.ctorParameters = () => [
220
194
  TransactionPurchaseOrderFilterContentOrderComponent.propDecorators = {
221
195
  showClass: [{ type: HostBinding, args: ["class.co-transaction-search-filter-content",] }]
222
196
  };
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcHVyY2hhc2Utb3JkZXItZmlsdGVyLWNvbnRlbnQtb3JkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50L3B1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50L3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50LW9yZGVyL3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50LW9yZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQXNCLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3RILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBSXJGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDbkYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBOElqRixNQUFNLE9BQU8sbURBQW9ELFNBQVEscUNBQXFDO0lBMkI1RyxZQUNTLGFBQXVDLEVBQ3ZDLG9CQUEwQyxFQUMxQyxrQkFBc0MsRUFDdEMsZUFBZ0M7UUFFdkMsS0FBSyxDQUFDLGFB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b3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPbkhvbGRDb2RlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb24taG9sZC1jb2RlLmJvJztcclxuaW1wb3J0IHtGaWx0ZXJJdGVtVmlld21vZGVsLCBGaWx0ZXJWaWV3bW9kZWx9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkZpbHRlckNvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZpbHRlclJlcXVlc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ZpbHRlci1yZXF1ZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7U2FsZXNQZXJzb259IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zYWxlcy1wZXJzb24uYm8nO1xyXG5pbXBvcnQge1RhZ30gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnJztcclxuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0JztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1wdXJjaGFzZS1vcmRlci1maWx0ZXItY29udGVudC1vcmRlcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1vcmRlci13cmFwcGVyIHRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LXdyYXBwZXJcIiBsYXp5UmVuZGVyTWFzdGVyPlxyXG5cclxuICAgICAgPCEtLUlua29vcG51bW1lci0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiIGxhenlSZW5kZXIgI2xhenlSZW5kZXJUcmFuc05yPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSAgKm5nSWY9XCJsYXp5UmVuZGVyVHJhbnNOci5pc1Nob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BVUkNIQVNFTlVNQkVSJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21Db250ZW50XT1cInRydWVcIj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QudHJhbnNOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIuUHVyY2hhc2VOdW1iZXIgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1PcmRlcmRhdHVtLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCIgbGF6eVJlbmRlciAjbGF6eVJlbmRlclRyYW5zRGF0ZT1cImxhenlSZW5kZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gKm5nSWY9XCJsYXp5UmVuZGVyVHJhbnNEYXRlLmlzU2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInT1JERVJfREFURSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tQ29udGVudF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgICBbbW9kZWxdPVwiW3RyYW5zU3RhcnREYXRlLCB0cmFuc0VuZERhdGVdXCJcclxuICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm9uRGF0ZVJhbmdlQ2hhbmdlKCRldmVudCwgJ3JhbmdlVHJhbnNEYXRlJylcIlxyXG4gICAgICAgICAgICAoY2xlYXJlZCk9XCJvbkNsZWFyZWREYXRlUmFuZ2VDaGFuZ2UoJ3JhbmdlVHJhbnNEYXRlJylcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFTEVDVF9EQVRFJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgICAgICA8L2NvLWlucHV0LWRhdGUtcmFuZ2U+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tTGV2ZXJkYXR1bS0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiIGxhenlSZW5kZXIgI2xhenlSZW5kZXJEZWxpdmVyeURhdGU9XCJsYXp5UmVuZGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtICpuZ0lmPVwibGF6eVJlbmRlckRlbGl2ZXJ5RGF0ZS5pc1Nob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX0RBVEUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LWRhdGUtcmFuZ2VcclxuICAgICAgICAgICAgW21vZGVsXT1cIltkZWxpdmVyeVN0YXJ0RGF0ZSwgZGVsaXZlcnlFbmREYXRlXVwiXHJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvbkRhdGVSYW5nZUNoYW5nZSgkZXZlbnQsICdkZWxpdmVyeURhdGVSYW5nZScpXCJcclxuICAgICAgICAgICAgKGNsZWFyZWQpPVwib25DbGVhcmVkRGF0ZVJhbmdlQ2hhbmdlKCdkZWxpdmVyeURhdGVSYW5nZScpXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRUxFQ1RfREFURScgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgPC9jby1pbnB1dC1kYXRlLXJhbmdlPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLUZpbGlhYWwtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIiBsYXp5UmVuZGVyICNsYXp5UmVuZGVyQnJhbmNoPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSAqbmdJZj1cImxhenlSZW5kZXJCcmFuY2guaXNTaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCUkFOQ0gnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaENvbGxlY3Rpb25QbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlci5CcmFuY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJicmFuY2hlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uQ2hhbmdlKT1cImZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZUNvbGxlY3Rpb25DaGFuZ2VGb3JSYW5nZSgkZXZlbnQsICdyYW5nZUJyYW5jaElkJylcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1JbmtvcGVyLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCIgbGF6eVJlbmRlciAjbGF6eVJlbmRlclNhbGVzUGVyc29uPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSAqbmdJZj1cImxhenlSZW5kZXJTYWxlc1BlcnNvbi5pc1Nob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BVUkNIQVNFX1BFUlNPTidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoQ29sbGVjdGlvblBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyLlB1cmNoYXNlUGVyc29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwicHVyY2hhc2VQZXJzb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25DaGFuZ2UpPVwiZmlsdGVyUmVxdWVzdFNlcnZpY2UuaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvclJhbmdlKCRldmVudCwgJ3JhbmdlU2FsZXNQZXJzb24nKVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLUVpZ2VuIHJlZmVyZW50aWUtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIiBsYXp5UmVuZGVyICNsYXp5UmVuZGVyVXNlclJlZmVyZW5jZT1cImxhenlSZW5kZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gKm5nSWY9XCJsYXp5UmVuZGVyVXNlclJlZmVyZW5jZS5pc1Nob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ09XTl9SRUZFUkVOQ0UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC51c2VyUmVmZXJlbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlci5Pd25SZWZlcmVuY2UgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1UYWdzLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCIgbGF6eVJlbmRlciAjbGF6eVJlbmRlclRhZ3M9XCJsYXp5UmVuZGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtICpuZ0lmPVwibGF6eVJlbmRlclRhZ3MuaXNTaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidUQUdTJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hDb2xsZWN0aW9uUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIuVGFnc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInRhZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29sbGVjdGlvbkNoYW5nZSk9XCJmaWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yUmFuZ2UoJGV2ZW50LCAndGFnUmFuZ2UnKVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLU9uIGhvbGQgY29kZXMtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIiBsYXp5UmVuZGVyICNsYXp5UmVuZGVyT25Ib2xkPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSAqbmdJZj1cImxhenlSZW5kZXJPbkhvbGQuaXNTaG93aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidPTl9IT0xEJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hDb2xsZWN0aW9uUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIuT25Ib2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwib25Ib2xkQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29sbGVjdGlvbkNoYW5nZSk9XCJmaWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVDb2xsZWN0aW9uQ2hhbmdlRm9yUmFuZ2UoJGV2ZW50LCdyYW5nZU9uSG9sZENvZGVzJylcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1Db21taXNzaWVjb2RlLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCIgbGF6eVJlbmRlciAjbGF6eVJlbmRlckNvbW1pc3Npb25Db2RlPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSAqbmdJZj1cImxhenlSZW5kZXJDb21taXNzaW9uQ29kZS5pc1Nob3dpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0NPTU1JU1NJT05fQ09ERSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoQ29sbGVjdGlvblBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyLkNvbW1pc3Npb25Db2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiY29tbWlzc2lvbkNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25DaGFuZ2UpPVwiZmlsdGVyUmVxdWVzdFNlcnZpY2UuaGFuZGxlQ29sbGVjdGlvbkNoYW5nZUZvckFycmF5KCRldmVudCwgJ2NvbW1pc3Npb25Db2RlcycpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tTWVlciBmaWx0ZXJzIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiIGxhenlSZW5kZXIgI2xhenlSZW5kZXJNb3JlPVwibGF6eVJlbmRlclwiPlxyXG4gICAgICAgIDxjby1maWx0ZXItaXRlbSAqbmdJZj1cImxhenlSZW5kZXJNb3JlLmlzU2hvd2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTU9SRV9GSUxURVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1c3RvbUNvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJCdXR0b25MYWJlbF09XCJmaWx0ZXJCdXR0b25MYWJlbCB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckJ1dHRvbkNsaWNrZWQpPVwib25GaWx0ZXJCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cImZhbHNlXCI+XHJcblxyXG4gICAgICAgICAgPCEtLU9yZGVyIGRlZmluaXRpZWYtLT5cclxuICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICBbbW9kZWxdPVwic2VhcmNoUmVxdWVzdC50cmFuc2FjdGlvbkRlZmluaXRpdmUgPT09ICdKJ1wiXHJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJmaWx0ZXJSZXF1ZXN0U2VydmljZS5oYW5kbGVDaGVja2JveFZhbHVlQ2hhbmdlRm9yU3RyaW5nKCRldmVudCwgJ3RyYW5zYWN0aW9uRGVmaW5pdGl2ZScpXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cIidPUkRFUl9ERUZJTklUSVZFJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgICA8IS0tSW5hY3RpZXZlIHRyYW5zYWN0aWVzLS0+XHJcbiAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgW21vZGVsXT1cInNlYXJjaFJlcXVlc3QuYWN0aXZlID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZWFyY2hSZXF1ZXN0LmFjdGl2ZSA9ICEkZXZlbnRcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0lOQUNUSVZFX1RSQU5TQUNUSU9OUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgICA8IS0tSW5jbHVzaWVmIHJldG91cmVuIC0tPlxyXG4gICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgIFtsYWJlbF09XCInSU5DTFVESU5HX1JFVFVSTlMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICBbbW9kZWxdPVwic2VhcmNoUmVxdWVzdC5pbmNsdWRpbmdSZXR1cm5zID09PSAxXCJcclxuICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImZpbHRlclJlcXVlc3RTZXJ2aWNlLmhhbmRsZUNoZWNrYm94VmFsdWVDaGFuZ2VGb3JOdW1iZXIoJGV2ZW50LCAnaW5jbHVkaW5nUmV0dXJucycpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvY28taW5wdXQtY2hlY2tib3g+XHJcblxyXG4gICAgICAgICAgPCEtLUxldmVybWV0aG9kZSBvcCAocmVnZWwvaGVhZGVyKTogbm9nIG5pZXQgaW4gQVBJIC0tPlxyXG4gICAgICAgIDwvY28tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QdXJjaGFzZU9yZGVyRmlsdGVyQ29udGVudE9yZGVyQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25GaWx0ZXJDb250ZW50QmFzZUNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1maWx0ZXItY29udGVudFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXJjaGFzZVBlcnNvbnM6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXTtcclxuICBwdWJsaWMgcHVyY2hhc2VQZXJzb25zRmllbGRzOiB7IHRleHQsIHZhbHVlIH0gPSB7dGV4dDogXCJuYW1lXCIsIHZhbHVlOiBcInJlbGF0aW9uSWRcIn07XHJcblxyXG4gIHB1YmxpYyB0YWdzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIHRhZ3NGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcInRhZ1ZhbHVlSWRcIn07XHJcblxyXG4gIHB1YmxpYyBicmFuY2hlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBicmFuY2hGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImZhbWlseU5hbWVcIiwgdmFsdWU6IFwicmVsYXRpb25JZFwifTtcclxuXHJcbiAgcHVibGljIG9uSG9sZENvZGVzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIG9uSG9sZENvZGVGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcIm9uSG9sZENvZGVcIn07XHJcblxyXG4gIHB1YmxpYyBjb21taXNzaW9uQ29kZXM6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXTtcclxuICBwdWJsaWMgY29tbWlzc2lvbkNvZGVGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XHJcblxyXG4gIHB1YmxpYyB0cmFuc1N0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgdHJhbnNFbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBkZWxpdmVyeVN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgZGVsaXZlcnlFbmREYXRlOiBEYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZmlsdGVyUmVxdWVzdFNlcnZpY2U6IEZpbHRlclJlcXVlc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlbGF0aW9uU2VydmljZTogUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZWFyY2hTZXJ2aWNlLCBmaWx0ZXJSZXF1ZXN0U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0UmFuZ2VEYXRlcygpO1xyXG4gICAgdGhpcy5fc2V0UHVyY2hhc2VQZXJzb25zKCk7XHJcbiAgICB0aGlzLl9zZXRUYWdzKCk7XHJcbiAgICB0aGlzLl9zZXRCcmFuY2hlcygpO1xyXG4gICAgdGhpcy5fc2V0T25Ib2xkQ29kZXMoKTtcclxuICAgIHRoaXMuX3NldENvbW1pc3Npb25Db2RlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0UmFuZ2VEYXRlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNTdGFydERhdGUgPSB0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5yYW5nZVRyYW5zRGF0ZSwgMCk7XHJcbiAgICB0aGlzLnRyYW5zRW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LnJhbmdlVHJhbnNEYXRlLCAxKTtcclxuICAgIHRoaXMuZGVsaXZlcnlTdGFydERhdGUgPSB0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5kZWxpdmVyeURhdGVSYW5nZSwgMCk7XHJcbiAgICB0aGlzLmRlbGl2ZXJ5RW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZVJhbmdlLCAxKTtcclxuICB9XHJcblxyXG4gIC8vSW5rb3BlclxyXG4gIHByaXZhdGUgX3NldFB1cmNoYXNlUGVyc29ucygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFNhbGVzUGVyc29ucygpLnRoZW4oKHBlcnNvbnM6IFNhbGVzUGVyc29uW10pID0+IHtcclxuICAgICAgdGhpcy5wdXJjaGFzZVBlcnNvbnMgPSBuZXcgRmlsdGVyVmlld21vZGVsKHBlcnNvbnMsIHRoaXMucHVyY2hhc2VQZXJzb25zRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVGFnc1xyXG4gIHByaXZhdGUgX3NldFRhZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRUYWdzKDEpLnRoZW4oKHRhZ3M6IFRhZ1tdKSA9PiB7XHJcbiAgICAgIHRoaXMudGFncyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwodGFncywgdGhpcy50YWdzRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9CcmFuY2hlc1xyXG4gIHByaXZhdGUgX3NldEJyYW5jaGVzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0ID0gbmV3IFJlbGF0aW9uUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5yZWxhdGlvblR5cGUgPSBSZWxhdGlvbktpbmQuQnJhbmNoO1xyXG4gICAgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZXF1ZXN0KS50aGVuKChicmFuY2hlczogUmVsYXRpb25MaXN0T2JqZWN0W10pID0+IHtcclxuICAgICAgdGhpcy5icmFuY2hlcyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwoYnJhbmNoZXMsIHRoaXMuYnJhbmNoRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9PbkhvbGRDb2Rlc1xyXG4gIHByaXZhdGUgX3NldE9uSG9sZENvZGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0T25Ib2xkQ29kZXMoKS50aGVuKChvbkhvbGRDb2RlczogT25Ib2xkQ29kZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMub25Ib2xkQ29kZXMgPSBuZXcgRmlsdGVyVmlld21vZGVsKG9uSG9sZENvZGVzLCB0aGlzLm9uSG9sZENvZGVGaWVsZHMpLmZpbHRlckl0ZW1zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0NvbW1pc3Npb25Db2Rlc1xyXG4gIHByaXZhdGUgX3NldENvbW1pc3Npb25Db2RlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldENvbW1pc3Npb25Db2RlcyhcIk5MXCIpLnRoZW4oKGNvbW1pc3Npb25Db2RlczogQ29Eb21haW5WYWx1ZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuY29tbWlzc2lvbkNvZGVzID0gbmV3IEZpbHRlclZpZXdtb2RlbChjb21taXNzaW9uQ29kZXMsIHRoaXMuY29tbWlzc2lvbkNvZGVGaWVsZHMpLmZpbHRlckl0ZW1zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcHVyY2hhc2Utb3JkZXItZmlsdGVyLWNvbnRlbnQtb3JkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50L3B1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50L3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50LW9yZGVyL3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50LW9yZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUMsY0FBYyxFQUF1QixlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUlyRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQW1IakYsTUFBTSxPQUFPLG1EQUFvRCxTQUFRLHFDQUFxQztJQTJCNUcsWUFDUyxhQUF1QyxFQUN2QyxvQkFBMEMsRUFDMUMsa0JBQXNDLEVBQ3RDLGVBQWdDO1FBRXZDLEtB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ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZ30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T25Ib2xkQ29kZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29uLWhvbGQtY29kZS5ibyc7XHJcbmltcG9ydCB7RmlsdGVySXRlbU1vZGUsIEZpbHRlckl0ZW1WaWV3bW9kZWwsIEZpbHRlclZpZXdtb2RlbH0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRmlsdGVyQ29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RmlsdGVyUmVxdWVzdFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZmlsdGVyLXJlcXVlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHtTYWxlc1BlcnNvbn0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3NhbGVzLXBlcnNvbi5ibyc7XHJcbmltcG9ydCB7VGFnfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YWcnO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ibyc7XHJcbmltcG9ydCB7UmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL3JlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci1jb250ZW50LW9yZGVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtb3JkZXItd3JhcHBlciB0cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC13cmFwcGVyXCI+XHJcblxyXG4gICAgICAgICAgPCEtLUlua29vcG51bW1lci0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidQVVJDSEFTRU5VTUJFUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3QudHJhbnNOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLlRleHRGaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tT3JkZXJkYXR1bS0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidPUkRFUl9EQVRFJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdC5yYW5nZVRyYW5zRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkRhdGVSYW5nZUZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS1MZXZlcmRhdHVtLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX0RBVEUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZVJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZXMuRGF0ZVJhbmdlRmllbGRcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLUZpbGlhYWwtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInQlJBTkNIJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImJyYW5jaGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnJhbmdlQnJhbmNoSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5GaWx0ZXJsaXN0XCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS1JbmtvcGVyLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ1BVUkNIQVNFX1BFUlNPTidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoQ29sbGVjdGlvblBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyLlB1cmNoYXNlUGVyc29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwicHVyY2hhc2VQZXJzb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnJhbmdlU2FsZXNQZXJzb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5GaWx0ZXJsaXN0XCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS1FaWdlbiByZWZlcmVudGllLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ09XTl9SRUZFUkVOQ0UnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnVzZXJSZWZlcmVuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5UZXh0RmllbGRcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLVRhZ3MtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInVEFHUydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoQ29sbGVjdGlvblBsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyLlRhZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJ0YWdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnRhZ1JhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZXMuRmlsdGVybGlzdFwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tT24gaG9sZCBjb2Rlcy0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidPTl9IT0xEJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hDb2xsZWN0aW9uUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIuT25Ib2xkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwib25Ib2xkQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3QucmFuZ2VPbkhvbGRDb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkZpbHRlcmxpc3RcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLUNvbW1pc3NpZWNvZGUtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInQ09NTUlTU0lPTl9DT0RFJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hDb2xsZWN0aW9uUGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIuQ29tbWlzc2lvbkNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjb21taXNzaW9uQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3QuY29tbWlzc2lvbkNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZXMuU2VsZWN0TGlzdFdpdGhTdHJpbmdDb2xsZWN0aW9uT3V0cHV0XCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS1PcmRlciBkZWZpbml0aWVmLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ09SREVSX0RFRklOSVRJVkUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnRyYW5zYWN0aW9uRGVmaW5pdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkNoZWNrYm94VG9UZXh0XCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS1JbmFjdGlldmUgdHJhbnNhY3RpZXMtLT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInSU5BQ1RJVkVfVFJBTlNBQ1RJT05TJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdC5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5DaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tSW5jbHVzaWVmIHJldG91cmVuIC0tPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidJTkNMVURJTkdfUkVUVVJOUydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3QuaW5jbHVkaW5nUmV0dXJuc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkNoZWNrYm94VG9UZXh0XCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblB1cmNoYXNlT3JkZXJGaWx0ZXJDb250ZW50T3JkZXJDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkZpbHRlckNvbnRlbnRCYXNlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgbW9kZXM6IHR5cGVvZiBGaWx0ZXJJdGVtTW9kZSA9IEZpbHRlckl0ZW1Nb2RlO1xyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1maWx0ZXItY29udGVudFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXJjaGFzZVBlcnNvbnM6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXTtcclxuICBwdWJsaWMgcHVyY2hhc2VQZXJzb25zRmllbGRzOiB7IHRleHQsIHZhbHVlIH0gPSB7dGV4dDogXCJuYW1lXCIsIHZhbHVlOiBcInJlbGF0aW9uSWRcIn07XHJcblxyXG4gIHB1YmxpYyB0YWdzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIHRhZ3NGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcInRhZ1ZhbHVlSWRcIn07XHJcblxyXG4gIHB1YmxpYyBicmFuY2hlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBicmFuY2hGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImZhbWlseU5hbWVcIiwgdmFsdWU6IFwicmVsYXRpb25JZFwifTtcclxuXHJcbiAgcHVibGljIG9uSG9sZENvZGVzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIG9uSG9sZENvZGVGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcIm9uSG9sZENvZGVcIn07XHJcblxyXG4gIHB1YmxpYyBjb21taXNzaW9uQ29kZXM6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXTtcclxuICBwdWJsaWMgY29tbWlzc2lvbkNvZGVGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XHJcblxyXG4gIHB1YmxpYyB0cmFuc1N0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgdHJhbnNFbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBkZWxpdmVyeVN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgZGVsaXZlcnlFbmREYXRlOiBEYXRlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZmlsdGVyUmVxdWVzdFNlcnZpY2U6IEZpbHRlclJlcXVlc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlbGF0aW9uU2VydmljZTogUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZWFyY2hTZXJ2aWNlLCBmaWx0ZXJSZXF1ZXN0U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0UmFuZ2VEYXRlcygpO1xyXG4gICAgdGhpcy5fc2V0UHVyY2hhc2VQZXJzb25zKCk7XHJcbiAgICB0aGlzLl9zZXRUYWdzKCk7XHJcbiAgICB0aGlzLl9zZXRCcmFuY2hlcygpO1xyXG4gICAgdGhpcy5fc2V0T25Ib2xkQ29kZXMoKTtcclxuICAgIHRoaXMuX3NldENvbW1pc3Npb25Db2RlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0UmFuZ2VEYXRlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNTdGFydERhdGUgPSB0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5yYW5nZVRyYW5zRGF0ZSwgMCk7XHJcbiAgICB0aGlzLnRyYW5zRW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LnJhbmdlVHJhbnNEYXRlLCAxKTtcclxuICAgIHRoaXMuZGVsaXZlcnlTdGFydERhdGUgPSB0aGlzLmZpbHRlclJlcXVlc3RTZXJ2aWNlLmdldERhdGVGcm9tRmlsdGVyUmVxdWVzdFJhbmdlKHRoaXMuc2VhcmNoUmVxdWVzdC5kZWxpdmVyeURhdGVSYW5nZSwgMCk7XHJcbiAgICB0aGlzLmRlbGl2ZXJ5RW5kRGF0ZSA9IHRoaXMuZmlsdGVyUmVxdWVzdFNlcnZpY2UuZ2V0RGF0ZUZyb21GaWx0ZXJSZXF1ZXN0UmFuZ2UodGhpcy5zZWFyY2hSZXF1ZXN0LmRlbGl2ZXJ5RGF0ZVJhbmdlLCAxKTtcclxuICB9XHJcblxyXG4gIC8vSW5rb3BlclxyXG4gIHByaXZhdGUgX3NldFB1cmNoYXNlUGVyc29ucygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFNhbGVzUGVyc29ucygpLnRoZW4oKHBlcnNvbnM6IFNhbGVzUGVyc29uW10pID0+IHtcclxuICAgICAgdGhpcy5wdXJjaGFzZVBlcnNvbnMgPSBuZXcgRmlsdGVyVmlld21vZGVsKHBlcnNvbnMsIHRoaXMucHVyY2hhc2VQZXJzb25zRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVGFnc1xyXG4gIHByaXZhdGUgX3NldFRhZ3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRUYWdzKDEpLnRoZW4oKHRhZ3M6IFRhZ1tdKSA9PiB7XHJcbiAgICAgIHRoaXMudGFncyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwodGFncywgdGhpcy50YWdzRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9CcmFuY2hlc1xyXG4gIHByaXZhdGUgX3NldEJyYW5jaGVzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0ID0gbmV3IFJlbGF0aW9uUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5yZWxhdGlvblR5cGUgPSBSZWxhdGlvbktpbmQuQnJhbmNoO1xyXG4gICAgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZXF1ZXN0KS50aGVuKChicmFuY2hlczogUmVsYXRpb25MaXN0T2JqZWN0W10pID0+IHtcclxuICAgICAgdGhpcy5icmFuY2hlcyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwoYnJhbmNoZXMsIHRoaXMuYnJhbmNoRmllbGRzKS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9PbkhvbGRDb2Rlc1xyXG4gIHByaXZhdGUgX3NldE9uSG9sZENvZGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0T25Ib2xkQ29kZXMoKS50aGVuKChvbkhvbGRDb2RlczogT25Ib2xkQ29kZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMub25Ib2xkQ29kZXMgPSBuZXcgRmlsdGVyVmlld21vZGVsKG9uSG9sZENvZGVzLCB0aGlzLm9uSG9sZENvZGVGaWVsZHMpLmZpbHRlckl0ZW1zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL0NvbW1pc3Npb25Db2Rlc1xyXG4gIHByaXZhdGUgX3NldENvbW1pc3Npb25Db2RlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldENvbW1pc3Npb25Db2RlcyhcIk5MXCIpLnRoZW4oKGNvbW1pc3Npb25Db2RlczogQ29Eb21haW5WYWx1ZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuY29tbWlzc2lvbkNvZGVzID0gbmV3IEZpbHRlclZpZXdtb2RlbChjb21taXNzaW9uQ29kZXMsIHRoaXMuY29tbWlzc2lvbkNvZGVGaWVsZHMpLmZpbHRlckl0ZW1zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,14 +1,13 @@
1
- import { Component, HostBinding } from "@angular/core";
2
- import { ArticleExtendedRequest } from "@colijnit/articleapi/build/model/article-extended-request";
3
- import { FilterItemMode } from "@colijnit/corecomponents_v12";
4
- import { FilterViewmodel } from "@colijnit/corecomponents_v12";
5
- import { TransactionService } from "../../../../../service/transaction.service";
6
- import { TransactionFilterContentBaseComponent } from "../../../../core/base/transaction-filter-content-base.component";
7
- import { FilterRequestService } from "../../../service/filter-request.service";
8
- import { TransactionSearchService } from "../../../service/transaction-search.service";
9
- import { RelationKind } from "@colijnit/articleapi/build/enum/relation-kind.enum";
10
- import { RelationRequest } from "@colijnit/relationapi/build/model/relation-request";
11
- import { RelationService } from "../../../../../service/relation.service";
1
+ import { Component, HostBinding } from '@angular/core';
2
+ import { ArticleExtendedRequest } from '@colijnit/articleapi/build/model/article-extended-request';
3
+ import { FilterItemMode, FilterViewmodel } from '@colijnit/corecomponents_v12';
4
+ import { TransactionService } from '../../../../../service/transaction.service';
5
+ import { TransactionFilterContentBaseComponent } from '../../../../core/base/transaction-filter-content-base.component';
6
+ import { FilterRequestService } from '../../../service/filter-request.service';
7
+ import { TransactionSearchService } from '../../../service/transaction-search.service';
8
+ import { RelationKind } from '@colijnit/articleapi/build/enum/relation-kind.enum';
9
+ import { RelationRequest } from '@colijnit/relationapi/build/model/relation-request';
10
+ import { RelationService } from '../../../../../service/relation.service';
12
11
  export class TransactionSalesOrderFilterContentArticleComponent extends TransactionFilterContentBaseComponent {
13
12
  constructor(searchService, filterRequestService, transactionService, _relationService) {
14
13
  super(searchService, filterRequestService, transactionService);
@@ -72,7 +71,7 @@ TransactionSalesOrderFilterContentArticleComponent.decorators = [
72
71
  <co-transaction-filter-item [placeholder]="'ARTICLE_NR'"
73
72
  [collectionLoadFn]="getArticles"
74
73
  [minSearchCharsToLoadCollection]="3"
75
- [(model)]="searchRequest.articleNr"
74
+ [(model)]="searchService.searchRequest.articleNr"
76
75
  [mode]="modes.SingleSelectList">
77
76
  </co-transaction-filter-item>
78
77
  </div>
@@ -81,7 +80,7 @@ TransactionSalesOrderFilterContentArticleComponent.decorators = [
81
80
  <div class="filter-item-wrapper">
82
81
  <co-transaction-filter-item [placeholder]="'TURNOVER_GROUP'"
83
82
  [collection]="turnoverGroups"
84
- [(model)]="searchRequest.rangeTurnoverGroup"
83
+ [(model)]="searchService.searchRequest.rangeTurnoverGroup"
85
84
  [mode]="modes.Filterlist">
86
85
  </co-transaction-filter-item>
87
86
  </div>
@@ -90,7 +89,7 @@ TransactionSalesOrderFilterContentArticleComponent.decorators = [
90
89
  <div class="filter-item-wrapper">
91
90
  <co-transaction-filter-item [placeholder]="'MAIN_ARTICLE'"
92
91
  [collection]="mainArticles"
93
- [(model)]="searchRequest.mainArticleNrRange"
92
+ [(model)]="searchService.searchRequest.mainArticleNrRange"
94
93
  [mode]="modes.Filterlist">
95
94
  </co-transaction-filter-item>
96
95
  </div>
@@ -99,8 +98,8 @@ TransactionSalesOrderFilterContentArticleComponent.decorators = [
99
98
  <div class="filter-item-wrapper">
100
99
  <co-transaction-filter-item [placeholder]="'EXCEEDENCE_CODE'"
101
100
  [collection]="exceedanceCodes"
102
- [(model)]="searchRequest.exceedanceCodes"
103
- [mode]="modes.Filterlist">
101
+ [(model)]="searchService.searchRequest.exceedanceCodes"
102
+ [mode]="modes.SelectListWithStringCollectionOutput">
104
103
  </co-transaction-filter-item>
105
104
  </div>
106
105
 
@@ -108,7 +107,7 @@ TransactionSalesOrderFilterContentArticleComponent.decorators = [
108
107
  <div class="filter-item-wrapper">
109
108
  <co-transaction-filter-item [placeholder]="'SUPPLIER'"
110
109
  [collection]="suppliers"
111
- [(model)]="searchRequest.rangeSupplier"
110
+ [(model)]="searchService.searchRequest.rangeSupplier"
112
111
  [mode]="modes.Filterlist">
113
112
  </co-transaction-filter-item>
114
113
  </div>
@@ -125,4 +124,4 @@ TransactionSalesOrderFilterContentArticleComponent.ctorParameters = () => [
125
124
  TransactionSalesOrderFilterContentArticleComponent.propDecorators = {
126
125
  showClass: [{ type: HostBinding, args: ["class.co-transaction-search-filter-content",] }]
127
126
  };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQvc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQvdHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS90cmFuc2FjdGlvbi1zYWxlcy1vcmRlci1maWx0ZXItY29udGVudC1hcnRpY2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUlqRyxPQUFPLEVBQUMsY0FBYyxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFaEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXVEeEUsTUFBTSxPQUFPLGtEQUFtRCxTQUFR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QUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDN0YsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzs7WUF4SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtREFBbUQ7Z0JBQzdELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDthQUNGOzs7WUExRE8sd0JBQXdCO1lBRHhCLG9CQUFvQjtZQUZwQixrQkFBa0I7WUFPbEIsZUFBZTs7O3dCQXlEcEIsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZ30gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7QXJ0aWNsZUxpZ2h0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1saWdodC5ib1wiO1xyXG5pbXBvcnQge01haW5BcnRpY2xlfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvbWFpbi1hcnRpY2xlLmJvXCI7XHJcbmltcG9ydCB7VHVybm92ZXJHcm91cEltYWdlfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvdHVybm92ZXItZ3JvdXAtaW1hZ2UuYm9cIjtcclxuaW1wb3J0IHtGaWx0ZXJJdGVtTW9kZSwgRmlsdGVySXRlbVZpZXdtb2RlbH0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtGaWx0ZXJWaWV3bW9kZWx9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25GaWx0ZXJDb250ZW50QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1maWx0ZXItY29udGVudC1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0ZpbHRlclJlcXVlc3RTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9maWx0ZXItcmVxdWVzdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UmVsYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNhbGVzLW9yZGVyLWZpbHRlci1jb250ZW50LWFydGljbGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS13cmFwcGVyIHRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LXdyYXBwZXJcIj5cclxuXHJcbiAgICAgIDwhLS1BcnRpa2VsbnVtbWVyLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInQVJUSUNMRV9OUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbkxvYWRGbl09XCJnZXRBcnRpY2xlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb25dPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QuYXJ0aWNsZU5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZXMuU2luZ2xlU2VsZWN0TGlzdFwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLU9temV0Z3JvZXAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidUVVJOT1ZFUl9HUk9VUCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJ0dXJub3Zlckdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFJlcXVlc3QucmFuZ2VUdXJub3Zlckdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwibW9kZXMuRmlsdGVybGlzdFwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLUhvb2ZkYXJ0aWtlbC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ01BSU5fQVJUSUNMRSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJtYWluQXJ0aWNsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0Lm1haW5BcnRpY2xlTnJSYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkZpbHRlcmxpc3RcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1VaXRsb29wY29kZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidFWENFRURFTkNFX0NPREUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZXhjZWVkYW5jZUNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoUmVxdWVzdC5leGNlZWRhbmNlQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5GaWx0ZXJsaXN0XCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tTGV2ZXJhbmNpZXItLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidTVVBQTElFUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJzdXBwbGllcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzZWFyY2hSZXF1ZXN0LnJhbmdlU3VwcGxpZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5GaWx0ZXJsaXN0XCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNhbGVzT3JkZXJGaWx0ZXJDb250ZW50QXJ0aWNsZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uRmlsdGVyQ29udGVudEJhc2VDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBtb2RlczogdHlwZW9mIEZpbHRlckl0ZW1Nb2RlID0gRmlsdGVySXRlbU1vZGU7XHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tc2VhcmNoLWZpbHRlci1jb250ZW50XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4Y2VlZGFuY2VDb2RlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBleGNlZWRhbmNlQ29kZUZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcclxuXHJcbiAgcHVibGljIHR1cm5vdmVyR3JvdXBzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIHR1cm5vdmVyR3JvdXBGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcInR1cm5vdmVyZ3JvdXBOclwifTtcclxuXHJcbiAgcHVibGljIG1haW5BcnRpY2xlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBtYWluQXJ0aWNsZUZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiYXJ0aWNsZW51bWJlclwifTtcclxuXHJcbiAgcHVibGljIHN1cHBsaWVyczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBzdXBwbGllckZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGlzcGxheU5hbWVcIiwgdmFsdWU6IFwicmVsYXRpb25JZFwifTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZpbHRlclJlcXVlc3RTZXJ2aWNlOiBGaWx0ZXJSZXF1ZXN0U2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU2VydmljZTogUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZWFyY2hTZXJ2aWNlLCBmaWx0ZXJSZXF1ZXN0U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0RXhjZWVkYW5jZUNvZGVzKCk7XHJcbiAgICB0aGlzLl9zZXRTdXBwbGllcnMoKTtcclxuICAgIHRoaXMuX3NldFR1cm5vdmVyR3JvdXBzKCk7XHJcbiAgICB0aGlzLl9zZXRNYWluQXJ0aWNsZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBcnRpY2xlcyA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IEFydGljbGVFeHRlbmRlZFJlcXVlc3QgPSBuZXcgQXJ0aWNsZUV4dGVuZGVkUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5hcnRpY2xlTnVtYmVyID0gdGV4dDtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRBcnRpY2xlcyhyZXF1ZXN0KS50aGVuKChhcnRpY2xlczogQXJ0aWNsZUxpZ2h0W10pID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJWaWV3bW9kZWwoYXJ0aWNsZXMsIHt0ZXh0OiAnYXJ0aWNsZU51bWJlcicsIHZhbHVlOiAnYXJ0aWNsZU51bWJlcid9KS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0RXhjZWVkYW5jZUNvZGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SW5PdXRDb2xsZWN0aW9uKFwiTkxcIikudGhlbigoZXhjZWVkYW5jZUNvZGVzOiBDb0RvbWFpblZhbHVlW10pID0+IHtcclxuICAgICAgdGhpcy5leGNlZWRhbmNlQ29kZXMgPSBuZXcgRmlsdGVyVmlld21vZGVsKGV4Y2VlZGFuY2VDb2RlcywgdGhpcy5leGNlZWRhbmNlQ29kZUZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFR1cm5vdmVyR3JvdXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0VHVybm92ZXJHcm91cHMoKS50aGVuKCh0dXJub3Zlckdyb3VwczogVHVybm92ZXJHcm91cEltYWdlW10pID0+IHtcclxuICAgICAgdGhpcy50dXJub3Zlckdyb3VwcyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwodHVybm92ZXJHcm91cHMsIHRoaXMudHVybm92ZXJHcm91cEZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE1haW5BcnRpY2xlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldE1haW5BcnRpY2xlcygpLnRoZW4oKGFydGljbGVzOiBNYWluQXJ0aWNsZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMubWFpbkFydGljbGVzID0gbmV3IEZpbHRlclZpZXdtb2RlbChhcnRpY2xlcywgdGhpcy5tYWluQXJ0aWNsZUZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFN1cHBsaWVycygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCA9IG5ldyBSZWxhdGlvblJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QucmVsYXRpb25UeXBlID0gUmVsYXRpb25LaW5kLlN1cHBsaWVyO1xyXG4gICAgdGhpcy5fcmVsYXRpb25TZXJ2aWNlLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVxdWVzdCkudGhlbigocmVsYXRpb25MaXN0T2JqZWN0cykgPT4ge1xyXG4gICAgICB0aGlzLnN1cHBsaWVycyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwocmVsYXRpb25MaXN0T2JqZWN0cywgdGhpcy5zdXBwbGllckZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQvc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQvdHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS90cmFuc2FjdGlvbi1zYWxlcy1vcmRlci1maWx0ZXItY29udGVudC1hcnRpY2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUlqRyxPQUFPLEVBQUMsY0FBYyxFQUF1QixlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFaEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXVEeEUsTUFBTSxPQUFPLGtEQUFtRCxTQUFRLHFDQUFxQztJQW1CM0csWUFDUyxhQUF1QyxFQUN2Qyxv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LENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUNqRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDN0YsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzs7WUF4SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtREFBbUQ7Z0JBQzdELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDthQUNGOzs7WUExRE8sd0JBQXdCO1lBRHhCLG9CQUFvQjtZQUZwQixrQkFBa0I7WUFPbEIsZUFBZTs7O3dCQXlEcEIsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZ30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC1yZXF1ZXN0JztcclxuaW1wb3J0IHtBcnRpY2xlTGlnaHR9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtbGlnaHQuYm8nO1xyXG5pbXBvcnQge01haW5BcnRpY2xlfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9tYWluLWFydGljbGUuYm8nO1xyXG5pbXBvcnQge1R1cm5vdmVyR3JvdXBJbWFnZX0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvdHVybm92ZXItZ3JvdXAtaW1hZ2UuYm8nO1xyXG5pbXBvcnQge0ZpbHRlckl0ZW1Nb2RlLCBGaWx0ZXJJdGVtVmlld21vZGVsLCBGaWx0ZXJWaWV3bW9kZWx9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkZpbHRlckNvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZpbHRlclJlcXVlc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ZpbHRlci1yZXF1ZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvJztcclxuaW1wb3J0IHtSZWxhdGlvblJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0JztcclxuaW1wb3J0IHtSZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2UvcmVsYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNhbGVzLW9yZGVyLWZpbHRlci1jb250ZW50LWFydGljbGUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZmlsdGVyLWNvbnRlbnQtYXJ0aWNsZS13cmFwcGVyIHRyYW5zYWN0aW9uLWZpbHRlci1jb250ZW50LXdyYXBwZXJcIj5cclxuXHJcbiAgICAgIDwhLS1BcnRpa2VsbnVtbWVyLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInQVJUSUNMRV9OUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbkxvYWRGbl09XCJnZXRBcnRpY2xlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb25dPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlYXJjaFNlcnZpY2Uuc2VhcmNoUmVxdWVzdC5hcnRpY2xlTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tT216ZXRncm9lcC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbSBbcGxhY2Vob2xkZXJdPVwiJ1RVUk5PVkVSX0dST1VQJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInR1cm5vdmVyR3JvdXBzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnJhbmdlVHVybm92ZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkZpbHRlcmxpc3RcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1Ib29mZGFydGlrZWwtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidNQUlOX0FSVElDTEUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwibWFpbkFydGljbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0Lm1haW5BcnRpY2xlTnJSYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLkZpbHRlcmxpc3RcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS1VaXRsb29wY29kZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1pdGVtLXdyYXBwZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0gW3BsYWNlaG9sZGVyXT1cIidFWENFRURFTkNFX0NPREUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZXhjZWVkYW5jZUNvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LmV4Y2VlZGFuY2VDb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIm1vZGVzLlNlbGVjdExpc3RXaXRoU3RyaW5nQ29sbGVjdGlvbk91dHB1dFwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWl0ZW0+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLUxldmVyYW5jaWVyLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWZpbHRlci1pdGVtIFtwbGFjZWhvbGRlcl09XCInU1VQUExJRVInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3VwcGxpZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0LnJhbmdlU3VwcGxpZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2Rlcy5GaWx0ZXJsaXN0XCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1maWx0ZXItaXRlbT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNhbGVzT3JkZXJGaWx0ZXJDb250ZW50QXJ0aWNsZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uRmlsdGVyQ29udGVudEJhc2VDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBtb2RlczogdHlwZW9mIEZpbHRlckl0ZW1Nb2RlID0gRmlsdGVySXRlbU1vZGU7XHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tc2VhcmNoLWZpbHRlci1jb250ZW50XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4Y2VlZGFuY2VDb2RlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBleGNlZWRhbmNlQ29kZUZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcclxuXHJcbiAgcHVibGljIHR1cm5vdmVyR3JvdXBzOiBGaWx0ZXJJdGVtVmlld21vZGVsW107XHJcbiAgcHVibGljIHR1cm5vdmVyR3JvdXBGaWVsZHM6IHsgdGV4dCwgdmFsdWUgfSA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcInR1cm5vdmVyZ3JvdXBOclwifTtcclxuXHJcbiAgcHVibGljIG1haW5BcnRpY2xlczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBtYWluQXJ0aWNsZUZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiYXJ0aWNsZW51bWJlclwifTtcclxuXHJcbiAgcHVibGljIHN1cHBsaWVyczogRmlsdGVySXRlbVZpZXdtb2RlbFtdO1xyXG4gIHB1YmxpYyBzdXBwbGllckZpZWxkczogeyB0ZXh0LCB2YWx1ZSB9ID0ge3RleHQ6IFwiZGlzcGxheU5hbWVcIiwgdmFsdWU6IFwicmVsYXRpb25JZFwifTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZpbHRlclJlcXVlc3RTZXJ2aWNlOiBGaWx0ZXJSZXF1ZXN0U2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU2VydmljZTogUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZWFyY2hTZXJ2aWNlLCBmaWx0ZXJSZXF1ZXN0U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0RXhjZWVkYW5jZUNvZGVzKCk7XHJcbiAgICB0aGlzLl9zZXRTdXBwbGllcnMoKTtcclxuICAgIHRoaXMuX3NldFR1cm5vdmVyR3JvdXBzKCk7XHJcbiAgICB0aGlzLl9zZXRNYWluQXJ0aWNsZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBcnRpY2xlcyA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IEFydGljbGVFeHRlbmRlZFJlcXVlc3QgPSBuZXcgQXJ0aWNsZUV4dGVuZGVkUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5hcnRpY2xlTnVtYmVyID0gdGV4dDtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRBcnRpY2xlcyhyZXF1ZXN0KS50aGVuKChhcnRpY2xlczogQXJ0aWNsZUxpZ2h0W10pID0+IHtcclxuICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJWaWV3bW9kZWwoYXJ0aWNsZXMsIHt0ZXh0OiAnYXJ0aWNsZU51bWJlcicsIHZhbHVlOiAnYXJ0aWNsZU51bWJlcid9KS5maWx0ZXJJdGVtcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0RXhjZWVkYW5jZUNvZGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SW5PdXRDb2xsZWN0aW9uKFwiTkxcIikudGhlbigoZXhjZWVkYW5jZUNvZGVzOiBDb0RvbWFpblZhbHVlW10pID0+IHtcclxuICAgICAgdGhpcy5leGNlZWRhbmNlQ29kZXMgPSBuZXcgRmlsdGVyVmlld21vZGVsKGV4Y2VlZGFuY2VDb2RlcywgdGhpcy5leGNlZWRhbmNlQ29kZUZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFR1cm5vdmVyR3JvdXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0VHVybm92ZXJHcm91cHMoKS50aGVuKCh0dXJub3Zlckdyb3VwczogVHVybm92ZXJHcm91cEltYWdlW10pID0+IHtcclxuICAgICAgdGhpcy50dXJub3Zlckdyb3VwcyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwodHVybm92ZXJHcm91cHMsIHRoaXMudHVybm92ZXJHcm91cEZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE1haW5BcnRpY2xlcygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldE1haW5BcnRpY2xlcygpLnRoZW4oKGFydGljbGVzOiBNYWluQXJ0aWNsZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMubWFpbkFydGljbGVzID0gbmV3IEZpbHRlclZpZXdtb2RlbChhcnRpY2xlcywgdGhpcy5tYWluQXJ0aWNsZUZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFN1cHBsaWVycygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCA9IG5ldyBSZWxhdGlvblJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QucmVsYXRpb25UeXBlID0gUmVsYXRpb25LaW5kLlN1cHBsaWVyO1xyXG4gICAgdGhpcy5fcmVsYXRpb25TZXJ2aWNlLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVxdWVzdCkudGhlbigocmVsYXRpb25MaXN0T2JqZWN0cykgPT4ge1xyXG4gICAgICB0aGlzLnN1cHBsaWVycyA9IG5ldyBGaWx0ZXJWaWV3bW9kZWwocmVsYXRpb25MaXN0T2JqZWN0cywgdGhpcy5zdXBwbGllckZpZWxkcykuZmlsdGVySXRlbXM7XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iXX0=