@colijnit/sharedcomponents 259.1.1 → 259.1.3
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.
- package/bundles/colijnit-sharedcomponents.umd.js +339 -182
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +83 -82
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +84 -83
- package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +30 -19
- package/esm2015/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.js +273 -0
- package/esm2015/lib/components/stock/stock.module.js +4 -2
- package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
- package/fesm2015/colijnit-sharedcomponents.js +299 -22
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/lib/components/stock/components/order-tab/order-tab.component.d.ts +9 -6
- package/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.d.ts +59 -0
- package/lib/components/stock/style/_layout.scss +110 -0
- package/lib/res/dictionary/dictionaries.d.ts +4 -0
- package/package.json +1 -1
- package/267.48755ac117fce8407070.js +0 -1
- package/358.645812766f7a400d0d38.js +0 -1
- package/3rdpartylicenses.txt +0 -2222
- package/977.bd6291f9ee6f6ddf91f1.js +0 -1
- package/favicon.ico +0 -0
- package/index.html +0 -12
- package/main.c1c7cd593e5838981edc.js +0 -1
- package/polyfills.907fe9d1887c5de17993.js +0 -1
- package/runtime.45ce1c91acb2c08983a7.js +0 -1
- package/styles.cfef0c0bfa724e043eb2.css +0 -1
package/esm2015/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { StockService } from '../../../service/stock.service';
|
|
3
|
+
import { ArticleDetailsBo } from '@colijnit/articleapi/build/model/article-details.bo';
|
|
4
|
+
import { IconCacheService } from '../../../service/icon-cache.service';
|
|
5
|
+
import { Icon } from '../../../enum/icon.enum';
|
|
6
|
+
import { ArticleStockManagement } from '@colijnit/articleapi/build/model/article-stock-management';
|
|
7
|
+
import { CoreDialogService } from '@colijnit/corecomponents_v12';
|
|
8
|
+
import { SharedComponentsDictionaryService } from '../../../translation/shared-components-dictionary.service';
|
|
9
|
+
export class StockTransferAllocatedComponent {
|
|
10
|
+
constructor(_stockService, iconCacheService, _changeDetector, dialogService, dict) {
|
|
11
|
+
this._stockService = _stockService;
|
|
12
|
+
this.iconCacheService = iconCacheService;
|
|
13
|
+
this._changeDetector = _changeDetector;
|
|
14
|
+
this.dialogService = dialogService;
|
|
15
|
+
this.dict = dict;
|
|
16
|
+
this.selectedArticleDetailsData = new ArticleDetailsBo();
|
|
17
|
+
this.articleDetailsInformation = new ArticleStockManagement();
|
|
18
|
+
this.articleStockInfo = [];
|
|
19
|
+
this.stockLocations = [];
|
|
20
|
+
this.handleClick = new EventEmitter();
|
|
21
|
+
this.handleStickerClicked = new EventEmitter();
|
|
22
|
+
this.updateGridData = new EventEmitter();
|
|
23
|
+
this.showStockTransferChange = new EventEmitter();
|
|
24
|
+
this.showSendMethodDialog = false;
|
|
25
|
+
this.warehouses = [];
|
|
26
|
+
this.articleDetails = [];
|
|
27
|
+
this.transferFull = false;
|
|
28
|
+
this.stockState = [];
|
|
29
|
+
this.locations = [];
|
|
30
|
+
this.stockStatus = [];
|
|
31
|
+
this.icons = Icon;
|
|
32
|
+
}
|
|
33
|
+
ngAfterViewInit() {
|
|
34
|
+
let request = new ArticleStockManagement();
|
|
35
|
+
request.transId = this.articleTransaction.transId.toString();
|
|
36
|
+
request.lineId = this.articleTransaction.lineNr.toString();
|
|
37
|
+
this._stockService.getArticleDetails(request).then((result) => {
|
|
38
|
+
this.articleDetails = result;
|
|
39
|
+
if (result.length === 1) {
|
|
40
|
+
this.articleToTransfer = result[0];
|
|
41
|
+
this.getStockManagementLocations(result[0].warehouseNo);
|
|
42
|
+
this._changeDetector.detectChanges();
|
|
43
|
+
this.articleToTransfer.amountTransfer = 1;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.getStockManagementWarehouses();
|
|
47
|
+
this.getStockState();
|
|
48
|
+
}
|
|
49
|
+
onCloseClick() {
|
|
50
|
+
this.showStockTransferChange.emit(false);
|
|
51
|
+
}
|
|
52
|
+
handleOkClick(articleToTransfer) {
|
|
53
|
+
if (this.articleToTransfer.amountTransfer === this.articleTransaction.amountInOrder) {
|
|
54
|
+
this.articleToTransfer.lineId = this.articleTransaction.lineNr;
|
|
55
|
+
this.articleToTransfer.transId = this.articleTransaction.transId;
|
|
56
|
+
articleToTransfer.selected = true;
|
|
57
|
+
articleToTransfer.entryDate = new Date;
|
|
58
|
+
if (!articleToTransfer.targetWarehouse) {
|
|
59
|
+
articleToTransfer.targetWarehouse = articleToTransfer.warehouseNo;
|
|
60
|
+
}
|
|
61
|
+
this._stockService.updateArticleDetails(articleToTransfer).then((result) => {
|
|
62
|
+
this.handleClick.emit();
|
|
63
|
+
this.showStockTransferChange.emit(false);
|
|
64
|
+
this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
|
|
65
|
+
this.articleStockInfo = details;
|
|
66
|
+
this.updateGridData.emit(details);
|
|
67
|
+
this.showStockTransferChange.emit(true);
|
|
68
|
+
});
|
|
69
|
+
}).catch((result) => {
|
|
70
|
+
// Log failure message
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.dialogService.showError(this.dict.get("AMOUNT_TO_TRANSFER_ALLOCATED_NOT_EQUAL"));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
handleSelectedWarehouse(event) {
|
|
78
|
+
this.articleToTransfer.targetWarehouse = event.warehouseNo;
|
|
79
|
+
this.getStockManagementLocations(event.warehouseNo);
|
|
80
|
+
}
|
|
81
|
+
handleSelectedLocation(event) {
|
|
82
|
+
this.articleToTransfer.targetLocation = event.locationNo;
|
|
83
|
+
}
|
|
84
|
+
handleSelectedStockState(event) {
|
|
85
|
+
this.articleToTransfer.stockStateId = event.stockStateId;
|
|
86
|
+
}
|
|
87
|
+
handleStickerClick() {
|
|
88
|
+
this.handleStickerClicked.emit();
|
|
89
|
+
this.showSendMethodDialog = true;
|
|
90
|
+
}
|
|
91
|
+
getStockManagementWarehouses() {
|
|
92
|
+
this._stockService.getStockManagementWarehouses().then((warehouses) => {
|
|
93
|
+
this.warehouses = warehouses;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
getStockManagementLocations(warehouseNo) {
|
|
97
|
+
this._stockService.getStockManagementLocations(warehouseNo).then((locations) => {
|
|
98
|
+
this.stockLocations = locations;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
getStockState() {
|
|
102
|
+
this._stockService.getStockState().then((state) => {
|
|
103
|
+
this.stockState = state;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
handleInputNumberChange(number) {
|
|
107
|
+
if (this.articleToTransfer.targetWarehouse && this.articleToTransfer.targetWarehouse !== this.articleToTransfer.warehouseNo) {
|
|
108
|
+
this.dialogService.showError("AMOUNT_CANT_BE_CHANGED_WITH_DIFFERING_WAREHOUSES");
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.articleToTransfer.amountTransfer = number;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
StockTransferAllocatedComponent.decorators = [
|
|
116
|
+
{ type: Component, args: [{
|
|
117
|
+
selector: 'co-stock-transfer-allocated',
|
|
118
|
+
template: `
|
|
119
|
+
<div class="stock-transfer">
|
|
120
|
+
<co-dialog
|
|
121
|
+
(closeClick)="onCloseClick()"
|
|
122
|
+
[showCloseIcon]="true"
|
|
123
|
+
[modal]="true"
|
|
124
|
+
[headerTemplate]="headerTemplate"
|
|
125
|
+
[footerTemplate]="footerTemplate">
|
|
126
|
+
<ng-template #headerTemplate>
|
|
127
|
+
<div class="co-dialog-header-title-wrapper">
|
|
128
|
+
<co-icon [iconData]="iconCacheService.getIcon(icons.Cubes)"></co-icon>
|
|
129
|
+
<div class="co-dialog-header-title" [textContent]="'TRANSFER_STOCK' | sharedLocalize"></div>
|
|
130
|
+
</div>
|
|
131
|
+
</ng-template>
|
|
132
|
+
<div class="dialog-wrapper">
|
|
133
|
+
<div class="stock-transfer-allocated-columns" *ngIf="articleToTransfer">
|
|
134
|
+
<div class="stock-transfer-allocated-column" [class.selected]="articleToTransfer === articleDetail" *ngFor="let articleDetail of articleDetails" (click)="articleToTransfer = articleDetail">
|
|
135
|
+
<div class="row">
|
|
136
|
+
<span class="bold" [textContent]="('STOREROOM' | sharedLocalize) + ': '"></span>
|
|
137
|
+
<span [textContent]="articleDetail.warehouseDescription"></span>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
<div class="row" *ngIf="articleDetail.locationItem">
|
|
142
|
+
<span class="bold" [textContent]="('LOCATION' | sharedLocalize) + ': '"></span>
|
|
143
|
+
<span [textContent]="articleDetail.locationNo"></span>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
<div class="row" *ngIf="articleDetail.batchItem">
|
|
148
|
+
<span class="bold" [textContent]="('BATCH_NO' | sharedLocalize) + ': '"></span>
|
|
149
|
+
<span [textContent]="articleDetail.batchNo"></span>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
<div class="row">
|
|
154
|
+
<span class="bold" [textContent]="('ORDER_RULE' | sharedLocalize) + ': '"></span>
|
|
155
|
+
<span [textContent]="articleDetail.lineId"></span>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<div class="row">
|
|
159
|
+
<span class="bold" [textContent]="('AMOUNT' | sharedLocalize) + ': '"></span>
|
|
160
|
+
<span [textContent]="articleDetail.amountInStock"></span>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div class="stock-transfer-columns" *ngIf="articleToTransfer">
|
|
168
|
+
<div *ngIf="articleToTransfer" class="stock-transfer-top-column">
|
|
169
|
+
<div class="transfer-quantity-allocated">
|
|
170
|
+
<co-input-number-picker
|
|
171
|
+
[readonly]="articleToTransfer.amountTransfer === articleTransaction.amountInOrder && articleToTransfer.targetWarehouse && articleToTransfer.targetWarehouse !== articleToTransfer.warehouseNo"
|
|
172
|
+
[model]="articleToTransfer.amountTransfer"
|
|
173
|
+
(modelChange)="handleInputNumberChange($event)"
|
|
174
|
+
[min]="1"
|
|
175
|
+
[max]="articleTransaction.amountInOrder"
|
|
176
|
+
[label]="'QUANTITY' | sharedLocalize">
|
|
177
|
+
</co-input-number-picker>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="transfer-arrow-wrapper">
|
|
181
|
+
<span class="half-circle"></span>
|
|
182
|
+
<div class="icon-wrapper">
|
|
183
|
+
<co-icon [iconData]="iconCacheService.getIcon(icons.ArrowDownRegular)"></co-icon>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
<div class="stock-transfer-bottom-column">
|
|
189
|
+
<div class="transfer-bottom-row">
|
|
190
|
+
|
|
191
|
+
<co-list-of-values *ngIf="articleToTransfer.amountTransfer === articleTransaction.amountInOrder" [collection]="warehouses"
|
|
192
|
+
[displayField]="'warehouseDescription'"
|
|
193
|
+
(modelChange)="handleSelectedWarehouse($event)"
|
|
194
|
+
[label]="'WAREHOUSE' | sharedLocalize"
|
|
195
|
+
>
|
|
196
|
+
</co-list-of-values>
|
|
197
|
+
<co-list-of-values [collection]="stockLocations"
|
|
198
|
+
[displayField]="'locationNo'"
|
|
199
|
+
(modelChange)="handleSelectedLocation($event)"
|
|
200
|
+
[label]="'LOCATION' | sharedLocalize"
|
|
201
|
+
>
|
|
202
|
+
</co-list-of-values>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="transfer-bottom-row">
|
|
205
|
+
<co-list-of-values [collection]="stockState"
|
|
206
|
+
[displayField]="'stateDescription'"
|
|
207
|
+
[label]="'STOCK_STATE' | sharedLocalize"
|
|
208
|
+
(modelChange)="handleSelectedStockState($event)"
|
|
209
|
+
>
|
|
210
|
+
</co-list-of-values>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
</div>
|
|
214
|
+
<div class="transfer-sticker-buttons">
|
|
215
|
+
<co-button
|
|
216
|
+
[label]="'STICKER' | sharedLocalize"
|
|
217
|
+
(click)="handleStickerClick()"
|
|
218
|
+
[iconData]="iconCacheService.getIcon(icons.BarcodeReadRegular)">
|
|
219
|
+
</co-button>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
</div>
|
|
225
|
+
<ng-template #footerTemplate>
|
|
226
|
+
<div class="button-wrapper ok-cancel-buttons">
|
|
227
|
+
<co-button class="save-button"
|
|
228
|
+
(click)="handleOkClick(articleToTransfer)"
|
|
229
|
+
[iconData]="iconCacheService.getIcon(icons.CheckDuotone)">
|
|
230
|
+
</co-button>
|
|
231
|
+
<co-button class="cancel-button"
|
|
232
|
+
(click)="onCloseClick()"
|
|
233
|
+
[iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
|
|
234
|
+
</co-button>
|
|
235
|
+
</div>
|
|
236
|
+
</ng-template>
|
|
237
|
+
</co-dialog>
|
|
238
|
+
</div>
|
|
239
|
+
<co-send-method-dialog *ngIf="showSendMethodDialog"
|
|
240
|
+
(closeClick)="showSendMethodDialog = false">
|
|
241
|
+
|
|
242
|
+
</co-send-method-dialog>
|
|
243
|
+
`,
|
|
244
|
+
encapsulation: ViewEncapsulation.None
|
|
245
|
+
},] }
|
|
246
|
+
];
|
|
247
|
+
StockTransferAllocatedComponent.ctorParameters = () => [
|
|
248
|
+
{ type: StockService },
|
|
249
|
+
{ type: IconCacheService },
|
|
250
|
+
{ type: ChangeDetectorRef },
|
|
251
|
+
{ type: CoreDialogService },
|
|
252
|
+
{ type: SharedComponentsDictionaryService }
|
|
253
|
+
];
|
|
254
|
+
StockTransferAllocatedComponent.propDecorators = {
|
|
255
|
+
stockSticker: [{ type: Input }],
|
|
256
|
+
article: [{ type: Input }],
|
|
257
|
+
articleToTransfer: [{ type: Input }],
|
|
258
|
+
articleTransaction: [{ type: Input }],
|
|
259
|
+
allWarehouses: [{ type: Input }],
|
|
260
|
+
showStockTransfer: [{ type: Input }],
|
|
261
|
+
selectedArticleDetailsData: [{ type: Input }],
|
|
262
|
+
articleFlat: [{ type: Input }],
|
|
263
|
+
articleDetailsInformation: [{ type: Input }],
|
|
264
|
+
selectedWarehouse: [{ type: Input }],
|
|
265
|
+
selectedLocationNo: [{ type: Input }],
|
|
266
|
+
articleStockInfo: [{ type: Input }],
|
|
267
|
+
stockLocations: [{ type: Input }],
|
|
268
|
+
handleClick: [{ type: Output }],
|
|
269
|
+
handleStickerClicked: [{ type: Output }],
|
|
270
|
+
updateGridData: [{ type: Output }],
|
|
271
|
+
showStockTransferChange: [{ type: Output }]
|
|
272
|
+
};
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stdHJhbnNmZXItYWxsb2NhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3N0b2NrL3N0b2NrLXRyYW5zZmVyLWFsbG9jYXRlZC9zdG9jay10cmFuc2Zlci1hbGxvY2F0ZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU1RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUlyRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFakcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFvSTVHLE1BQU0sT0FBTywrQkFBK0I7SUFrRTFDLFlBQ1UsYUFBMkIsRUFDNUIsZ0JBQWtDLEVBQ2pDLGVBQWtDLEVBQ25DLGFBQWdDLEVBQ2hDLElBQXVDO1FBSnRDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFtQztRQWxEekMsK0JBQTBC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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkhUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUEvSU8sWUFBWTtZQU1aLGdCQUFnQjtZQVJELGlCQUFpQjtZQWFoQyxpQkFBaUI7WUFDakIsaUNBQWlDOzs7MkJBc0l0QyxLQUFLO3NCQUdMLEtBQUs7Z0NBR0wsS0FBSztpQ0FHTCxLQUFLOzRCQUdMLEtBQUs7Z0NBR0wsS0FBSzt5Q0FHTCxLQUFLOzBCQUdMLEtBQUs7d0NBR0wsS0FBSztnQ0FHTCxLQUFLO2lDQUdMLEtBQUs7K0JBR0wsS0FBSzs2QkFHTCxLQUFLOzBCQUdMLE1BQU07bUNBR04sTUFBTTs2QkFHTixNQUFNO3NDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1ByaW50U3RvY2tTdGlja2Vyc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvcHJpbnQtc3RvY2stc3RpY2tlcnMnO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlJztcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm8nO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ibyc7XHJcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvJztcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stc3RhdHVzLmJvJztcclxuaW1wb3J0IHtTdG9ja0xvY2F0aW9ufSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1sb2NhdGlvbi5ibyc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvJztcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnQnO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbi5ibyc7XHJcbmltcG9ydCB7Q29yZURpYWxvZ1NlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1NoYXJlZENvbXBvbmVudHNEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdHJhbnNsYXRpb24vc2hhcmVkLWNvbXBvbmVudHMtZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tc3RvY2stdHJhbnNmZXItYWxsb2NhdGVkJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvY2stdHJhbnNmZXJcIj5cclxuICAgICAgICAgIDxjby1kaWFsb2dcclxuICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwib25DbG9zZUNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkN1YmVzKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidUUkFOU0ZFUl9TVE9DSycgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stdHJhbnNmZXItYWxsb2NhdGVkLWNvbHVtbnNcIiAqbmdJZj1cImFydGljbGVUb1RyYW5zZmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stdHJhbnNmZXItYWxsb2NhdGVkLWNvbHVtblwiIFtjbGFzcy5zZWxlY3RlZF09XCJhcnRpY2xlVG9UcmFuc2ZlciA9PT0gYXJ0aWNsZURldGFpbFwiICpuZ0Zvcj1cImxldCBhcnRpY2xlRGV0YWlsIG9mIGFydGljbGVEZXRhaWxzXCIgKGNsaWNrKT1cImFydGljbGVUb1RyYW5zZmVyID0gYXJ0aWNsZURldGFpbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCIgW3RleHRDb250ZW50XT1cIignU1RPUkVST09NJyB8IHNoYXJlZExvY2FsaXplKSArICc6ICdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJhcnRpY2xlRGV0YWlsLndhcmVob3VzZURlc2NyaXB0aW9uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiYXJ0aWNsZURldGFpbC5sb2NhdGlvbkl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCIgW3RleHRDb250ZW50XT1cIignTE9DQVRJT04nIHwgc2hhcmVkTG9jYWxpemUpICsgJzogJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImFydGljbGVEZXRhaWwubG9jYXRpb25Ob1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImFydGljbGVEZXRhaWwuYmF0Y2hJdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9sZFwiIFt0ZXh0Q29udGVudF09XCIoJ0JBVENIX05PJyB8IHNoYXJlZExvY2FsaXplKSArICc6ICdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJhcnRpY2xlRGV0YWlsLmJhdGNoTm9cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9sZFwiIFt0ZXh0Q29udGVudF09XCIoJ09SREVSX1JVTEUnIHwgc2hhcmVkTG9jYWxpemUpICsgJzogJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImFydGljbGVEZXRhaWwubGluZUlkXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9sZFwiIFt0ZXh0Q29udGVudF09XCIoJ0FNT1VOVCcgfCBzaGFyZWRMb2NhbGl6ZSkgKyAnOiAnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiYXJ0aWNsZURldGFpbC5hbW91bnRJblN0b2NrXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stdHJhbnNmZXItY29sdW1uc1wiICpuZ0lmPVwiYXJ0aWNsZVRvVHJhbnNmZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhcnRpY2xlVG9UcmFuc2ZlclwiIGNsYXNzPVwic3RvY2stdHJhbnNmZXItdG9wLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1xdWFudGl0eS1hbGxvY2F0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50VHJhbnNmZXIgPT09IGFydGljbGVUcmFuc2FjdGlvbi5hbW91bnRJbk9yZGVyICYmIGFydGljbGVUb1RyYW5zZmVyLnRhcmdldFdhcmVob3VzZSAmJiBhcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UgIT09IGFydGljbGVUb1RyYW5zZmVyLndhcmVob3VzZU5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50VHJhbnNmZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVJbnB1dE51bWJlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiYXJ0aWNsZVRyYW5zYWN0aW9uLmFtb3VudEluT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUVVBTlRJVFknIHwgc2hhcmVkTG9jYWxpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNmZXItYXJyb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGFsZi1jaXJjbGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93RG93blJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci1ib3R0b20tY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLWJvdHRvbS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyAqbmdJZj1cImFydGljbGVUb1RyYW5zZmVyLmFtb3VudFRyYW5zZmVyID09PSBhcnRpY2xlVHJhbnNhY3Rpb24uYW1vdW50SW5PcmRlclwiIFtjb2xsZWN0aW9uXT1cIndhcmVob3VzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGaWVsZF09XCInd2FyZWhvdXNlRGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFdhcmVob3VzZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInV0FSRUhPVVNFJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGaWVsZF09XCInbG9jYXRpb25ObydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkTG9jYXRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2Zlci1ib3R0b20tcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyBbY29sbGVjdGlvbl09XCJzdG9ja1N0YXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0tfU1RBVEUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkU3RvY2tTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zZmVyLXN0aWNrZXItYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU1RJQ0tFUicgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU3RpY2tlckNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5CYXJjb2RlUmVhZFJlZ3VsYXIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXdyYXBwZXIgb2stY2FuY2VsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPa0NsaWNrKGFydGljbGVUb1RyYW5zZmVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXNlbmQtbWV0aG9kLWRpYWxvZyAqbmdJZj1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlXCI+XHJcblxyXG4gICAgICA8L2NvLXNlbmQtbWV0aG9kLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b2NrVHJhbnNmZXJBbGxvY2F0ZWRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tTdGlja2VyOiBQcmludFN0b2NrU3RpY2tlcnM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGU6IEFydGljbGVTdG9ja0JvO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlVG9UcmFuc2ZlcjogQXJ0aWNsZURldGFpbHNCbztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVRyYW5zYWN0aW9uOiBBcnRpY2xlVHJhbnNhY3Rpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFsbFdhcmVob3VzZXM6IGFueVtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm86IEFydGljbGVEZXRhaWxzQm9bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVTdGlja2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB1cGRhdGVHcmlkRGF0YTogRXZlbnRFbWl0dGVyPEFydGljbGVEZXRhaWxzQm9bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFydGljbGVEZXRhaWxzQm9bXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBwdWJsaWMgc2hvd1NlbmRNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgd2FyZWhvdXNlczogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcbiAgcHVibGljIHRyYW5zZmVyRnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RvY2tTdGF0ZTogU3RvY2tTdGF0dXNbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgbG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuICBwdWJsaWMgc3RvY2tTdGF0dXM6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWN0OiBTaGFyZWRDb21wb25lbnRzRGljdGlvbmFyeVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGxldCByZXF1ZXN0OiBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50ID0gbmV3IEFydGljbGVTdG9ja01hbmFnZW1lbnQoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMuYXJ0aWNsZVRyYW5zYWN0aW9uLnRyYW5zSWQudG9TdHJpbmcoKTtcclxuICAgIHJlcXVlc3QubGluZUlkID0gdGhpcy5hcnRpY2xlVHJhbnNhY3Rpb24ubGluZU5yLnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHMocmVxdWVzdCkudGhlbigocmVzdWx0OiBBcnRpY2xlRGV0YWlsc0JvW10pID0+IHtcclxuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlscyA9IHJlc3VsdDtcclxuICAgICAgaWYocmVzdWx0Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIgPSByZXN1bHRbMF07XHJcbiAgICAgICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMocmVzdWx0WzBdLndhcmVob3VzZU5vKTtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci5hbW91bnRUcmFuc2ZlciA9IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk7XHJcbiAgICB0aGlzLmdldFN0b2NrU3RhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICB0aGlzLnNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soYXJ0aWNsZVRvVHJhbnNmZXI6IEFydGljbGVEZXRhaWxzQm8pIHtcclxuICAgIGlmKHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIuYW1vdW50VHJhbnNmZXIgPT09IHRoaXMuYXJ0aWNsZVRyYW5zYWN0aW9uLmFtb3VudEluT3JkZXIpIHtcclxuICAgICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci5saW5lSWQgPSB0aGlzLmFydGljbGVUcmFuc2FjdGlvbi5saW5lTnI7XHJcbiAgICAgIHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIudHJhbnNJZCA9IHRoaXMuYXJ0aWNsZVRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICAgIGFydGljbGVUb1RyYW5zZmVyLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgYXJ0aWNsZVRvVHJhbnNmZXIuZW50cnlEYXRlID0gbmV3IERhdGU7XHJcbiAgICAgIGlmKCFhcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UpIHtcclxuICAgICAgICBhcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UgPSBhcnRpY2xlVG9UcmFuc2Zlci53YXJlaG91c2VObztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHMoYXJ0aWNsZVRvVHJhbnNmZXIpLnRoZW4oKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQ2xpY2suZW1pdCgpO1xyXG4gICAgICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVEZXRhaWxzKHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbikudGhlbigoZGV0YWlscykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hcnRpY2xlU3RvY2tJbmZvID0gZGV0YWlscztcclxuICAgICAgICAgIHRoaXMudXBkYXRlR3JpZERhdGEuZW1pdChkZXRhaWxzKTtcclxuICAgICAgICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSkuY2F0Y2goKHJlc3VsdDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgLy8gTG9nIGZhaWx1cmUgbWVzc2FnZVxyXG5cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKHRoaXMuZGljdC5nZXQoXCJBTU9VTlRfVE9fVFJBTlNGRVJfQUxMT0NBVEVEX05PVF9FUVVBTFwiKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdGVkV2FyZWhvdXNlKGV2ZW50OiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVUb1RyYW5zZmVyLnRhcmdldFdhcmVob3VzZSA9IGV2ZW50LndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMoZXZlbnQud2FyZWhvdXNlTm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdGVkTG9jYXRpb24oZXZlbnQ6IFN0b2NrTG9jYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIudGFyZ2V0TG9jYXRpb24gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRTdG9ja1N0YXRlKGV2ZW50OiBTdG9ja1N0YXR1cyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci5zdG9ja1N0YXRlSWQgPSBldmVudC5zdG9ja1N0YXRlSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RpY2tlckNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCkudGhlbigod2FyZWhvdXNlcykgPT4ge1xyXG4gICAgICB0aGlzLndhcmVob3VzZXMgPSB3YXJlaG91c2VzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHdhcmVob3VzZU5vOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMod2FyZWhvdXNlTm8pLnRoZW4oKGxvY2F0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrTG9jYXRpb25zID0gbG9jYXRpb25zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja1N0YXRlKCkudGhlbigoc3RhdGU6IFN0b2NrU3RhdHVzW10pID0+IHtcclxuICAgICAgdGhpcy5zdG9ja1N0YXRlID0gc3RhdGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnB1dE51bWJlckNoYW5nZShudW1iZXI6IG51bWJlcikge1xyXG4gICAgaWYodGhpcy5hcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UgJiYgdGhpcy5hcnRpY2xlVG9UcmFuc2Zlci50YXJnZXRXYXJlaG91c2UgIT09IHRoaXMuYXJ0aWNsZVRvVHJhbnNmZXIud2FyZWhvdXNlTm8pIHtcclxuICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKFwiQU1PVU5UX0NBTlRfQkVfQ0hBTkdFRF9XSVRIX0RJRkZFUklOR19XQVJFSE9VU0VTXCIpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFydGljbGVUb1RyYW5zZmVyLmFtb3VudFRyYW5zZmVyID0gbnVtYmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -26,6 +26,7 @@ import { StockPrognoseComponent } from './components/stock-prognose/stock-progno
|
|
|
26
26
|
import { StockLocationPopupComponent } from './components/stock-location/components/stock-location-popup/stock-location-popup.component';
|
|
27
27
|
import { SharedComponentsTranslationModule } from '../../translation/shared-components-translation.module';
|
|
28
28
|
import { StockModuleScreenConfigService } from "./service/stock-module-screen-config.service";
|
|
29
|
+
import { StockTransferAllocatedComponent } from './stock-transfer-allocated/stock-transfer-allocated.component';
|
|
29
30
|
export class StockModule {
|
|
30
31
|
}
|
|
31
32
|
StockModule.decorators = [
|
|
@@ -70,7 +71,8 @@ StockModule.decorators = [
|
|
|
70
71
|
OrderStockHistoryComponent,
|
|
71
72
|
AllocationStockHistoryComponent,
|
|
72
73
|
StockPrognoseComponent,
|
|
73
|
-
StockLocationPopupComponent
|
|
74
|
+
StockLocationPopupComponent,
|
|
75
|
+
StockTransferAllocatedComponent
|
|
74
76
|
],
|
|
75
77
|
exports: [
|
|
76
78
|
StockComponent
|
|
@@ -81,4 +83,4 @@ StockModule.decorators = [
|
|
|
81
83
|
]
|
|
82
84
|
},] }
|
|
83
85
|
];
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2subW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2subW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsV0FBVyxFQUNYLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUM1RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDOUgsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFDekgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzVGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDRGQUE0RixDQUFDO0FBQ3ZJLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzVGLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBc0Q5RyxNQUFNLE9BQU8sV0FBVzs7O1lBcER2QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixzQkFBc0I7b0JBQ3RCLGdCQUFnQjtvQkFDaEIsV0FBVztvQkFDWCxlQUFlO29CQUNmLHNCQUFzQjtvQkFDdEIsVUFBVTtvQkFDVix1QkFBdUI7b0JBQ3ZCLG9CQUFvQjtvQkFDcEIsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixvQkFBb0I7b0JBQ3BCLGtCQUFrQjtvQkFDbEIsaUNBQWlDO29CQUNqQyxXQUFXO29CQUNYLHFCQUFxQjtvQkFDckIseUJBQXlCO2lCQUMxQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osY0FBYztvQkFDZCx5QkFBeUI7b0JBQ3pCLDZCQUE2QjtvQkFDN0Isc0JBQXNCO29CQUN0QiwwQkFBMEI7b0JBQzFCLGlCQUFpQjtvQkFDakIsaUJBQWlCO29CQUNqQixrQkFBa0I7b0JBQ2xCLHlCQUF5QjtvQkFDekIsc0JBQXNCO29CQUN0QixzQkFBc0I7b0JBQ3RCLHFCQUFxQjtvQkFDckIsZ0NBQWdDO29CQUNoQyxvQ0FBb0M7b0JBQ3BDLDBCQUEwQjtvQkFDMUIsK0JBQStCO29CQUMvQixzQkFBc0I7b0JBQ3RCLDJCQUEyQjtvQkFDM0IsK0JBQStCO2lCQUNoQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsY0FBYztpQkFDZjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsOEJBQThCO29CQUM5QixZQUFZO2lCQUNiO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdG9ja0NvbXBvbmVudH0gZnJvbSAnLi9zdG9jay5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEJ1dHRvbk1vZHVsZSxcclxuICBDb0RpYWxvZ01vZHVsZSxcclxuICBDb0RpYWxvZ1dpemFyZE1vZHVsZSxcclxuICBJY29uTW9kdWxlLFxyXG4gIEltYWdlTW9kdWxlLFxyXG4gIElucHV0RGF0ZVBpY2tlck1vZHVsZSxcclxuICBJbnB1dE51bWJlclBpY2tlck1vZHVsZSxcclxuICBJbnB1dFJhZGlvQnV0dG9uTW9kdWxlLFxyXG4gIElucHV0VGV4dGFyZWFNb2R1bGUsXHJcbiAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gIExpc3RPZlZhbHVlc01vZHVsZSxcclxuICBQb3B1cE1vZHVsZSxcclxuICBTY3JlZW5Db25maWd1cmF0aW9uTW9kdWxlLFxyXG4gIFNpbXBsZUdyaWRNb2R1bGUsXHJcbn0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1N0b2NrSW5mb3JtYXRpb25Db21wb25lbnR9IGZyb20gJy4vc3RvY2staW5mb3JtYXRpb24vc3RvY2staW5mb3JtYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtTdG9ja0luZm9ybWF0aW9uR3JpZENvbXBvbmVudH0gZnJvbSAnLi9zdG9jay1pbmZvcm1hdGlvbi1ncmlkL3N0b2NrLWluZm9ybWF0aW9uLWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc3RvY2suc2VydmljZSc7XHJcbmltcG9ydCB7U3RvY2tUcmFuc2ZlckNvbXBvbmVudH0gZnJvbSAnLi9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1NlbmRNZXRob2REaWFsb2dNb2R1bGV9IGZyb20gJy4uL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHtTdG9ja0NoYW5nZUFtb3VudENvbXBvbmVudH0gZnJvbSAnLi9zdG9jay10cmFuc2Zlci9zdG9jay1jaGFuZ2UtYW1vdW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RvY2tUYWJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zdG9jay10YWIvc3RvY2stdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3JkZXJUYWJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vcmRlci10YWIvb3JkZXItdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RvY2tUYWJzQ29tcG9uZW50fSBmcm9tICcuL3N0b2NrLXRhYnMvc3RvY2stdGFicy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0b2NrSGlzdG9yeVRhYnNDb21wb25lbnR9IGZyb20gJy4vc3RvY2staGlzdG9yeS10YWJzL3N0b2NrLWhpc3RvcnktdGFicy5jb21wb25lbnQnO1xyXG5pbXBvcnQge09yZGVyU3RvY2tUYWJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9vcmRlci1zdG9jay10YWIvb3JkZXItc3RvY2stdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uL3N0b2NrLWxvY2F0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RvY2tIaXN0b3J5Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc3RvY2staGlzdG9yeS9zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VGFiQmFyTW9kdWxlfSBmcm9tICcuLi90YWItYmFyL3RhYi1iYXIubW9kdWxlJztcclxuaW1wb3J0IHtPcmRlclN1cHBseVN0b2NrSGlzdG9yeUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5L29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7T3JkZXJDb21taXNzaW9uU3RvY2tIaXN0b3J5Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb3JkZXItY29tbWlzc2lvbi1zdG9jay1oaXN0b3J5L29yZGVyLWNvbW1pc3Npb24tc3RvY2staGlzdG9yeS5jb21wb25lbnQnO1xyXG5pbXBvcnQge09yZGVyU3RvY2tIaXN0b3J5Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb3JkZXItc3RvY2staGlzdG9yeS9vcmRlci1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWxsb2NhdGlvblN0b2NrSGlzdG9yeUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2FsbG9jYXRpb24tc3RvY2staGlzdG9yeS9hbGxvY2F0aW9uLXN0b2NrLWhpc3RvcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGF0dXNiYXJNb2R1bGV9IGZyb20gJy4uL3N0YXR1c2Jhci9zdGF0dXNiYXIubW9kdWxlJztcclxuaW1wb3J0IHtTdG9ja1N0YXR1c2Jhck1vZHVsZX0gZnJvbSAnLi4vc3RvY2stc3RhdHVzYmFyL3N0b2NrLXN0YXR1c2Jhci5tb2R1bGUnO1xyXG5pbXBvcnQge1N0b2NrUHJvZ25vc2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zdG9jay1wcm9nbm9zZS9zdG9jay1wcm9nbm9zZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb25Qb3B1cENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uL2NvbXBvbmVudHMvc3RvY2stbG9jYXRpb24tcG9wdXAvc3RvY2stbG9jYXRpb24tcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtTaGFyZWRDb21wb25lbnRzVHJhbnNsYXRpb25Nb2R1bGV9IGZyb20gJy4uLy4uL3RyYW5zbGF0aW9uL3NoYXJlZC1jb21wb25lbnRzLXRyYW5zbGF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7U3RvY2tNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlL3N0b2NrLW1vZHVsZS1zY3JlZW4tY29uZmlnLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja1RyYW5zZmVyQWxsb2NhdGVkQ29tcG9uZW50fSBmcm9tICcuL3N0b2NrLXRyYW5zZmVyLWFsbG9jYXRlZC9zdG9jay10cmFuc2Zlci1hbGxvY2F0ZWQuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW5wdXRSYWRpb0J1dHRvbk1vZHVsZSxcclxuICAgIFNpbXBsZUdyaWRNb2R1bGUsXHJcbiAgICBJbWFnZU1vZHVsZSxcclxuICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgIFNlbmRNZXRob2REaWFsb2dNb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlLFxyXG4gICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICBDb0RpYWxvZ1dpemFyZE1vZHVsZSxcclxuICAgIElucHV0VGV4dGFyZWFNb2R1bGUsXHJcbiAgICBUYWJCYXJNb2R1bGUsXHJcbiAgICBDb0RpYWxvZ01vZHVsZSxcclxuICAgIFN0YXR1c2Jhck1vZHVsZSxcclxuICAgIFN0b2NrU3RhdHVzYmFyTW9kdWxlLFxyXG4gICAgTGlzdE9mVmFsdWVzTW9kdWxlLFxyXG4gICAgU2hhcmVkQ29tcG9uZW50c1RyYW5zbGF0aW9uTW9kdWxlLFxyXG4gICAgUG9wdXBNb2R1bGUsXHJcbiAgICBJbnB1dERhdGVQaWNrZXJNb2R1bGUsXHJcbiAgICBTY3JlZW5Db25maWd1cmF0aW9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFN0b2NrQ29tcG9uZW50LFxyXG4gICAgU3RvY2tJbmZvcm1hdGlvbkNvbXBvbmVudCxcclxuICAgIFN0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50LFxyXG4gICAgU3RvY2tUcmFuc2ZlckNvbXBvbmVudCxcclxuICAgIFN0b2NrQ2hhbmdlQW1vdW50Q29tcG9uZW50LFxyXG4gICAgU3RvY2tUYWJDb21wb25lbnQsXHJcbiAgICBPcmRlclRhYkNvbXBvbmVudCxcclxuICAgIFN0b2NrVGFic0NvbXBvbmVudCxcclxuICAgIFN0b2NrSGlzdG9yeVRhYnNDb21wb25lbnQsXHJcbiAgICBPcmRlclN0b2NrVGFiQ29tcG9uZW50LFxyXG4gICAgU3RvY2tMb2NhdGlvbkNvbXBvbmVudCxcclxuICAgIFN0b2NrSGlzdG9yeUNvbXBvbmVudCxcclxuICAgIE9yZGVyU3VwcGx5U3RvY2tIaXN0b3J5Q29tcG9uZW50LFxyXG4gICAgT3JkZXJDb21taXNzaW9uU3RvY2tIaXN0b3J5Q29tcG9uZW50LFxyXG4gICAgT3JkZXJTdG9ja0hpc3RvcnlDb21wb25lbnQsXHJcbiAgICBBbGxvY2F0aW9uU3RvY2tIaXN0b3J5Q29tcG9uZW50LFxyXG4gICAgU3RvY2tQcm9nbm9zZUNvbXBvbmVudCxcclxuICAgIFN0b2NrTG9jYXRpb25Qb3B1cENvbXBvbmVudCxcclxuICAgIFN0b2NrVHJhbnNmZXJBbGxvY2F0ZWRDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFN0b2NrQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFN0b2NrTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSxcclxuICAgIFN0b2NrU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b2NrTW9kdWxlIHtcclxufVxyXG4iXX0=
|