@seniorsistemas/yms-integration 1.38.0-84525130-8955-4de4-9dbd-cbae08fb1cda → 1.39.0-b18a63fd-cce0-4144-98f4-dfcd1d6f5b8d
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/seniorsistemas-yms-integration.umd.js +79 -54
- package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
- package/esm2015/src/wms/components/document-grid/document-grid.component.js +65 -6
- package/esm2015/src/wms/components/document-grid/insert-key/insert-key.component.js +8 -22
- package/esm2015/src/wms/components/document-grid/register-document/register-document.component.js +8 -31
- package/esm2015/src/wms/entities/document/document.service.js +3 -3
- package/esm5/src/wms/components/document-grid/document-grid.component.js +69 -6
- package/esm5/src/wms/components/document-grid/insert-key/insert-key.component.js +8 -23
- package/esm5/src/wms/components/document-grid/register-document/register-document.component.js +8 -32
- package/esm5/src/wms/entities/document/document.service.js +3 -3
- package/fesm2015/seniorsistemas-yms-integration.js +75 -52
- package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
- package/fesm5/seniorsistemas-yms-integration.js +79 -54
- package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-yms-integration.metadata.json +1 -1
- package/src/wms/components/document-grid/document-grid.component.d.ts +9 -1
- package/src/wms/components/document-grid/insert-key/insert-key.component.d.ts +3 -3
- package/src/wms/components/document-grid/register-document/register-document.component.d.ts +3 -7
- package/src/wms/entities/document/document.service.d.ts +1 -1
|
@@ -3,8 +3,7 @@ import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from "
|
|
|
3
3
|
import { TranslateService } from "@ngx-translate/core";
|
|
4
4
|
import { ConfirmationService } from "primeng/api";
|
|
5
5
|
import { Table } from "primeng/table";
|
|
6
|
-
import { Subject,
|
|
7
|
-
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { Subject, forkJoin, throwError } from 'rxjs';
|
|
8
7
|
import { UtilsMessageService } from "../../../utils/utils-message";
|
|
9
8
|
import { AgendaService } from '../../entities/agenda/agenda.service';
|
|
10
9
|
import { DocumentService } from '../../entities/document/document.service';
|
|
@@ -12,14 +11,17 @@ import { WmsSystem } from '../../entities/wms-system/wms-system';
|
|
|
12
11
|
import { IntegrationService } from './../../entities/integration/integration.service';
|
|
13
12
|
import { InvoiceCondition } from "../../../../src/wms/entities/invoice-condition/invoice-condition";
|
|
14
13
|
import { getInvoiceConditions } from "../utils/invoice-conditions";
|
|
14
|
+
import { catchError, takeUntil } from 'rxjs/operators';
|
|
15
|
+
import { FormWmsService } from '../../form/form-wms.service';
|
|
15
16
|
let DocumentGridComponent = class DocumentGridComponent {
|
|
16
|
-
constructor(translate, documentService, confirmationService, integrationService, agendaService, utils) {
|
|
17
|
+
constructor(translate, documentService, confirmationService, integrationService, agendaService, utils, wmsService) {
|
|
17
18
|
this.translate = translate;
|
|
18
19
|
this.documentService = documentService;
|
|
19
20
|
this.confirmationService = confirmationService;
|
|
20
21
|
this.integrationService = integrationService;
|
|
21
22
|
this.agendaService = agendaService;
|
|
22
23
|
this.utils = utils;
|
|
24
|
+
this.wmsService = wmsService;
|
|
23
25
|
this.viewDocument = new EventEmitter();
|
|
24
26
|
this.gridData = [];
|
|
25
27
|
this.enableButtonIsClienteExterno = true;
|
|
@@ -40,6 +42,38 @@ let DocumentGridComponent = class DocumentGridComponent {
|
|
|
40
42
|
this.verifyClienteExterno();
|
|
41
43
|
this.getProcessTypeByScheduling();
|
|
42
44
|
this.listDocuments(false);
|
|
45
|
+
if (!this.wmsSystem) {
|
|
46
|
+
this.wmsService.getSystemIntegration()
|
|
47
|
+
.subscribe(({ system }) => {
|
|
48
|
+
this.wmsSystem = system;
|
|
49
|
+
if (this.isWmsSeniorConnect()) {
|
|
50
|
+
this.getYard();
|
|
51
|
+
this.getSchedule();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
getYard() {
|
|
57
|
+
this.documentService.getYard(this.agenda.planta.id)
|
|
58
|
+
.pipe(catchError(err => {
|
|
59
|
+
return throwError(err);
|
|
60
|
+
}))
|
|
61
|
+
.subscribe((content) => {
|
|
62
|
+
this.yard = content;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
getSchedule() {
|
|
66
|
+
if (this.agenda.externalTenant && this.agenda.externalTenant.cnpj) {
|
|
67
|
+
this.schedule = this.agenda;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.agendaService.get(this.agenda.id)
|
|
71
|
+
.pipe(catchError(err => {
|
|
72
|
+
return throwError(err);
|
|
73
|
+
}))
|
|
74
|
+
.subscribe((content) => {
|
|
75
|
+
this.schedule = content;
|
|
76
|
+
});
|
|
43
77
|
}
|
|
44
78
|
verifyClienteExterno() {
|
|
45
79
|
this.agendaService.isClienteExterno()
|
|
@@ -174,7 +208,7 @@ let DocumentGridComponent = class DocumentGridComponent {
|
|
|
174
208
|
accept: () => {
|
|
175
209
|
this.removeDocumentIfIdUndfined();
|
|
176
210
|
if (this.selection.length < 1) {
|
|
177
|
-
return
|
|
211
|
+
return null;
|
|
178
212
|
}
|
|
179
213
|
return forkJoin(this.selection.map(document => this.documentService.delete(document.id)))
|
|
180
214
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
@@ -299,6 +333,30 @@ let DocumentGridComponent = class DocumentGridComponent {
|
|
|
299
333
|
sucessMessage() {
|
|
300
334
|
return this.utils.message("success", this.summary, "saved_message_content");
|
|
301
335
|
}
|
|
336
|
+
validateDocument(document) {
|
|
337
|
+
if (this.isWmsSeniorConnect()) {
|
|
338
|
+
if (!this.yard.codigo) {
|
|
339
|
+
this.buildMessage("yms.int.yard_code_not_found_warning_description");
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
if (document.logistcUnitDocument !== this.yard.codigo) {
|
|
343
|
+
this.buildMessage("yms.int.document_yard_mismatch_agenda_warning_description");
|
|
344
|
+
return false;
|
|
345
|
+
}
|
|
346
|
+
if (!this.schedule.externalTenant) {
|
|
347
|
+
this.buildMessage("yms.int.partner_not_informed_agenda_warning_description");
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
if (document.partnerDocument !== this.schedule.externalTenant.cnpj) {
|
|
351
|
+
this.buildMessage("yms.int.partner_differs_from_agenda_warning_description");
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
buildMessage(description) {
|
|
358
|
+
this.utils.message("warn", "yms.int.documento_invalido_warning_header", description);
|
|
359
|
+
}
|
|
302
360
|
};
|
|
303
361
|
tslib_1.__decorate([
|
|
304
362
|
Input(),
|
|
@@ -355,7 +413,8 @@ DocumentGridComponent = tslib_1.__decorate([
|
|
|
355
413
|
ConfirmationService,
|
|
356
414
|
IntegrationService,
|
|
357
415
|
AgendaService,
|
|
358
|
-
UtilsMessageService
|
|
416
|
+
UtilsMessageService,
|
|
417
|
+
FormWmsService])
|
|
359
418
|
], DocumentGridComponent);
|
|
360
419
|
export { DocumentGridComponent };
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQVksTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQW9CLE1BQU0sc0NBQXNDLENBQUM7QUFFdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQW9DLGtCQUFrQixFQUFlLE1BQU0sa0RBQWtELENBQUM7QUFDckksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDcEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPbkUsSUFBYSxxQkFBcUIsR0FBbEMsTUFBYSxxQkFBcUI7SUFtRDlCLFlBQ3FCLFNBQTJCLEVBQzNCLGVBQWdD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LG9CQUFvQixDQUFDO3NDQUNMLFdBQVc7aUVBQU07QUFHNUM7SUFEQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7c0NBQ0wsV0FBVzsrREFBTTtBQUcxQztJQURDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztzQ0FDTCxXQUFXOzZEQUFNO0FBekMvQixxQkFBcUI7SUFMakMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsZzJQQUE2Qzs7S0FFaEQsQ0FBQzs2Q0FxRGtDLGdCQUFnQjtRQUNWLGVBQWU7UUFDWCxtQkFBbUI7UUFDcEIsa0JBQWtCO1FBQ3ZCLGFBQWE7UUFDckIsbUJBQW1CO0dBekR0QyxxQkFBcUIsQ0E2V2pDO1NBN1dZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZW51SXRlbSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCwgZW1wdHksIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVdGlsc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3V0aWxzLW1lc3NhZ2VcIjtcbmltcG9ydCB7IEFnZW5kYVNlcnZpY2UsIElzQ2xpZW50ZUV4dGVybm8gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnRcIjtcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0LCBJbnRlZ3JhdGlvblNlcnZpY2UsIFByb2Nlc3NUeXBlIH0gZnJvbSAnLi8uLi8uLi9lbnRpdGllcy9pbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEludm9pY2VDb25kaXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vc3JjL3dtcy9lbnRpdGllcy9pbnZvaWNlLWNvbmRpdGlvbi9pbnZvaWNlLWNvbmRpdGlvblwiO1xuaW1wb3J0IHsgZ2V0SW52b2ljZUNvbmRpdGlvbnMgfSBmcm9tIFwiLi4vdXRpbHMvaW52b2ljZS1jb25kaXRpb25zXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZG9jdW1lbnQtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRHcmlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIGFnZW5kYTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUludm9pY2VLZXk6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHZpc2libGVEb2N1bWVudFJlZ2lzdGVyOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHZpZXdEb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBkb2N1bWVudFRvdGFsUmVjb3JkczogbnVtYmVyO1xuICAgIHB1YmxpYyBncmlkQ29sdW1uczogYW55O1xuICAgIHB1YmxpYyBncmlkRGF0YTogRG9jdW1lbnRbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3Rpb246IERvY3VtZW50W107XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkb2N1bWVudDogRG9jdW1lbnQ7XG4gICAgcHVibGljIGVkaXQ6IGJvb2xlYW47XG4gICAgcHVibGljIHByb2Nlc3NUeXBlOiBQcm9jZXNzVHlwZTtcbiAgICBwdWJsaWMgaXNDbGllbnRlRXh0ZXJubzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IHRydWU7XG4gICAgcHVibGljIGludm9pY2VDb25kaXRpb25zID0gZ2V0SW52b2ljZUNvbmRpdGlvbnModGhpcy50cmFuc2xhdGUpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdW1tYXJ5ID0gXCJ5bXMuaW50Lndtc19zYXZlZF9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJkb2N1bWVudFRhYmxlXCIpXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21UZW1wbGF0ZVwiKVxuICAgIHB1YmxpYyBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21GaWx0ZXJGaWVsZHNcIilcbiAgICBwdWJsaWMgY3VzdG9tRmlsdGVyRmllbGRzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRDb2xncm91cFwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQ29sZ3JvdXA6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZEhlYWRlclwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkSGVhZGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRCb2R5XCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRCb2R5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZ2V0RmlsdGVyZWRJbnZvaWNlQ29uZGl0aW9ucyhpbnZvaWNlQ29uZGl0aW9uczogYW55KTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogSW52b2ljZUNvbmRpdGlvbiB8IG51bGwgfVtdIHtcbiAgICAgICAgaWYgKGludm9pY2VDb25kaXRpb25zID09PSBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmludm9pY2VDb25kaXRpb25zLmZpbHRlcihjb25kID0+IGNvbmQudmFsdWUgPT09IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnZvaWNlQ29uZGl0aW9ucy5maWx0ZXIoY29uZCA9PiBjb25kLnZhbHVlICE9PSBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25TZXJ2aWNlOiBJbnRlZ3JhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWdlbmRhU2VydmljZTogQWdlbmRhU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNNZXNzYWdlU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52ZXJpZnlDbGllbnRlRXh0ZXJubygpO1xuICAgICAgICB0aGlzLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCk7XG4gICAgICAgIHRoaXMubGlzdERvY3VtZW50cyhmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2ZXJpZnlDbGllbnRlRXh0ZXJubygpIHtcbiAgICAgICAgdGhpcy5hZ2VuZGFTZXJ2aWNlLmlzQ2xpZW50ZUV4dGVybm8oKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IElzQ2xpZW50ZUV4dGVybm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNDbGllbnRlRXh0ZXJubyA9IHJlc3VsdC5pc0NsaWVudGVFeHRlcm5vO1xuICAgICAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbnMoKTtcbiAgICAgICAgICAgIHRoaXMuY2FudEVkaXRTdGF0dXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpIHtcbiAgICAgICAgdGhpcy5pbnRlZ3JhdGlvblNlcnZpY2UuZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcodGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvLmlkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBHZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZ091dHB1dCkgPT4gdGhpcy5wcm9jZXNzVHlwZSA9IHJlc3VsdC5wcm9jZXNzVHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlRG9jdW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNGaWxsZWRWYWx1ZXMoZG9jdW1lbnQpKXtcbiAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcImVycm9yXCIsXCJ5bXMuaW50Lndtc19zYXZlX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIixcInltcy5pbnQud21zX3NhdmVfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXNzaWduS2V5cyhkb2N1bWVudCk7XG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZURvY3VtZW50ID0gdGhpcy5ncmlkRGF0YS5maW5kKGdyaWREYXRhID0+IGdyaWREYXRhLmtleSA9PT0gZG9jdW1lbnQua2V5KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZURvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaChkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCB0aGlzLnN1bW1hcnksIFwieW1zLmludC53bXNfc3VjY2Vzc19tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmlzaWJsZUludm9pY2VLZXkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzc2lnbktleXMoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hZ2VuZGEuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmtleSA9PT0gdW5kZWZpbmVkIHx8IGRvY3VtZW50LmtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmtleSA9IGRvY3VtZW50Lmludm9pY2VLZXk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNXbXNXSVMoKSkge1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5rZXkgPSBgJHtkb2N1bWVudC5pbnZvaWNlTnVtYmVyfToke2RvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7ZG9jdW1lbnQucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNGaWxsZWRWYWx1ZXMoZG9jdW1lbnQ6IERvY3VtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBPYmplY3QudmFsdWVzKGRvY3VtZW50KTtcbiAgICAgICAgcmV0dXJuIGZvcm1WYWx1ZXMuc29tZSh2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBjYW50RWRpdFN0YXR1cygpIHtcbiAgICAgICAgY29uc3QgY2FudEVkaXRTdGF0dXMgPSBbXG4gICAgICAgICAgICAnQ0FOQ0VMQURPJyxcbiAgICAgICAgICAgICdFTV9FWEVDVUNBTycsXG4gICAgICAgICAgICAnQ09OQ0xVSURPJyxcbiAgICAgICAgICAgICdBR1VBUkRBTkRPX1BPUl9WQUxJREFDQU8nXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5hZ2VuZGEuc3RhdHVzLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIGlmKGNhbnRFZGl0U3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUJ1dHRvbklzQ2xpZW50ZUV4dGVybm8gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBY3Rpb25zKCk6IE1lbnVJdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfc2VhcmNoXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlSW52b2ljZUtleSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhIGZhLXNlYXJjaFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmNoZWNrV21zU3lzdGVtSW52YWxpZCgpLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfYWRkX2RvY3VtZW50X3JlZ2lzdGVyXCIpLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhcyBmYS1wZW4tc3F1YXJlXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy53bXNTeXN0ZW0gJiYgdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5OT05FKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb3Aob2JqOiBhbnksIHBhdGg6IGFueSkge1xuICAgICAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChyZXN1bHQ6IGFueSwgcHJvcDogYW55KSA9PiAocmVzdWx0W3Byb3BdID09PSB1bmRlZmluZWQgPyBcIlwiIDogcmVzdWx0W3Byb3BdKSwgb2JqKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlldygpIHtcbiAgICAgICAgdGhpcy52aWV3RG9jdW1lbnQuZW1pdCh0aGlzLnNlbGVjdGlvblswXSk7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmVkaXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgaWYodGhpcy5ncmlkRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIWRhdGEuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWRhdGEuc2NoZWR1bGluZ0lkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNjaGVkdWxpbmdJZCA9IHRoaXMuYWdlbmRhLmlkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEua2V5ID0gdGhpcy51cGRhdGVLZXlCeVdtcyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuaW5zZXJ0KGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Vzc01lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlKGRhdGEuaWQsIGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Vzc01lc3NhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5saXN0RG9jdW1lbnRzKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlS2V5QnlXbXMoZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFkYXRhLmtleSkge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBkYXRhLmludm9pY2VLZXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uV0lTKSB7XG4gICAgICAgICAgICBkYXRhLmtleSA9IGAke2RhdGEuaW52b2ljZU51bWJlcn06JHtkYXRhLmludm9pY2VTZXJpYWxOdW1iZXJ9OiR7ZGF0YS5wYXJ0bmVyRG9jdW1lbnR9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YS5rZXk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGVsZXRlKCkge1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlX2NvbmZpcm1hdGlvbl9tZXNzYWdlXCIpLFxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiZGVsZXRlX2NvbmZpcm1hdGlvbl90aXRsZVwiKSxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRG9jdW1lbnRJZklkVW5kZmluZWQoKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JrSm9pbih0aGlzLnNlbGVjdGlvbi5tYXAoZG9jdW1lbnQgPT4gdGhpcy5kb2N1bWVudFNlcnZpY2UuZGVsZXRlKGRvY3VtZW50LmlkKSkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJkZWxldGVkX21lc3NhZ2VfdGl0bGVcIiwgXCJkZWxldGVkX21lc3NhZ2VfY29udGVudFwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0RG9jdW1lbnRzKHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZURvY3VtZW50SWZJZFVuZGZpbmVkKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUuaWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleEdyaWREYXRhID0gdGhpcy5ncmlkRGF0YS5maW5kSW5kZXgoZG9jdW1lbnQgPT4gZG9jdW1lbnQua2V5ID09PSB2YWx1ZS5rZXkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5zcGxpY2UoaW5kZXhHcmlkRGF0YSwgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdFNhdmVkRG9jdW1lbnRzKCkgOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZERhdGEuc29tZShkb2N1bWVudCA9PiAhZG9jdW1lbnQuaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKGlzRGVsZXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmxpc3Qoe1xuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IGBzY2hlZHVsaW5nSWQgZXEgJyR7dGhpcy5hZ2VuZGEuaWR9J2AsXG4gICAgICAgICAgICBzaXplOiAxMDBcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGlzRGVsZXRlID8gdGhpcy5ncmlkRGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pZCkgOiBbXTtcblxuICAgICAgICAgICAgaWYoY29udGVudHMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goLi4uY29udGVudHMuY29udGVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFbGVtZW50V2l0aG91dElkID0gdGhpcy5ncmlkRGF0YS5zb21lKGl0ZW0gPT4gIWl0ZW0uaWQpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIWhhc0VsZW1lbnRXaXRob3V0SWQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0R3JpZENvbHVtbnMoKSB7XG4gICAgICAgIGxldCByZXN1bHQ7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLndtc1N5c3RlbSkge1xuICAgICAgICAgICAgY2FzZSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy53bXNTZW5pb3JDb25uZWN0SW50ZWdyYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgV21zU3lzdGVtLldJUzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLndtc1dpc0ludGVncmF0aW9uKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFdtc1N5c3RlbS5TRU5JT1I6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy53bXNTaWx0SW50ZWdyYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgd21zU2VuaW9yQ29ubmVjdEludGVncmF0aW9uKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJrZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcHVyY2hhc2VPcmRlclwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5QYXJ0bmVyKCksXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbmxvZ2lzdGNVbml0KClcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3bXNXaXNJbnRlZ3JhdGlvbigpIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCksXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuYWRkSW52b2ljZVNpdHVhdGlvbklmTm90Q2xpZW50ZUV4dGVybm8oY29sdW1ucyk7XG4gICAgICAgIHJldHVybiBjb2x1bW5zO1xuICAgIH1cblxuICAgIHByaXZhdGUgd21zU2lsdEludGVncmF0aW9uKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlS2V5XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2Vfa2V5XCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpLFxuICAgICAgICAgICAgeyBmaWVsZDogXCJvd25lck5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJvd25lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X293bmVyX2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgICAgIHRoaXMuYWRkSW52b2ljZVNpdHVhdGlvbklmTm90Q2xpZW50ZUV4dGVybm8oY29sdW1ucyk7XG4gICAgICAgIHJldHVybiBjb2x1bW5zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uaW52b2ljZUNvbmRpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHsgZmllbGQ6IFwiaW52b2ljZUNvbmRpdGlvblwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uXCIpIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZVNlcmlhbE51bWJlclwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX3NlcmlhbF9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uUGFydG5lcigpLFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5sb2dpc3RjVW5pdCgpXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5QYXJ0bmVyKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9wYXJ0bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwicGFydG5lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtbmxvZ2lzdGNVbml0KCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdE5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXREb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEludm9pY2VTaXR1YXRpb25JZk5vdENsaWVudGVFeHRlcm5vKGNvbHVtbnM6IGFueVtdKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0NsaWVudGVFeHRlcm5vKSB7XG4gICAgICAgICAgICBjb2x1bW5zLnB1c2godGhpcy5nZXRDb2x1bW5pbnZvaWNlQ29uZGl0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2VuaW9yQ29ubmVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SX0NPTk5FQ1Q7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zV0lTKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzV21zU2lsdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uU0VOSU9SO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3VjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRpbHMubWVzc2FnZShcInN1Y2Nlc3NcIiwgdGhpcy5zdW1tYXJ5LCBcInNhdmVkX21lc3NhZ2VfY29udGVudFwiKTtcbiAgICB9XG59XG4iXX0=
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQVksTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBb0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBb0Msa0JBQWtCLEVBQWUsTUFBTSxrREFBa0QsQ0FBQztBQUNySSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU03RCxJQUFhLHFC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O3NDQUNMLFdBQVc7aUVBQU07QUFHNUM7SUFEQyxTQUFTLENBQUMsa0JBQWtCLENBQUM7c0NBQ0wsV0FBVzsrREFBTTtBQUcxQztJQURDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztzQ0FDTCxXQUFXOzZEQUFNO0FBM0MvQixxQkFBcUI7SUFMakMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsZzJQQUE2Qzs7S0FFaEQsQ0FBQzs2Q0F1RGtDLGdCQUFnQjtRQUNWLGVBQWU7UUFDWCxtQkFBbUI7UUFDcEIsa0JBQWtCO1FBQ3ZCLGFBQWE7UUFDckIsbUJBQW1CO1FBQ2QsY0FBYztHQTVEdEMscUJBQXFCLENBd2JqQztTQXhiWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVudUl0ZW0gfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFN1YmplY3QsIGZvcmtKb2luLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVdGlsc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3V0aWxzLW1lc3NhZ2VcIjtcbmltcG9ydCB7IEFnZW5kYVNlcnZpY2UsIElzQ2xpZW50ZUV4dGVybm8gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnRcIjtcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0LCBJbnRlZ3JhdGlvblNlcnZpY2UsIFByb2Nlc3NUeXBlIH0gZnJvbSAnLi8uLi8uLi9lbnRpdGllcy9pbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEludm9pY2VDb25kaXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vc3JjL3dtcy9lbnRpdGllcy9pbnZvaWNlLWNvbmRpdGlvbi9pbnZvaWNlLWNvbmRpdGlvblwiO1xuaW1wb3J0IHsgZ2V0SW52b2ljZUNvbmRpdGlvbnMgfSBmcm9tIFwiLi4vdXRpbHMvaW52b2ljZS1jb25kaXRpb25zXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtV21zU2VydmljZSB9IGZyb20gJy4uLy4uL2Zvcm0vZm9ybS13bXMuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvY3VtZW50LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYWdlbmRhO1xuICAgIEBJbnB1dCgpIHdtc1N5c3RlbTogV21zU3lzdGVtO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlSW52b2ljZUtleTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZURvY3VtZW50UmVnaXN0ZXI6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgdmlld0RvY3VtZW50OiBFdmVudEVtaXR0ZXI8RG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGRvY3VtZW50VG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgcHVibGljIGdyaWRDb2x1bW5zOiBhbnk7XG4gICAgcHVibGljIGdyaWREYXRhOiBEb2N1bWVudFtdID0gW107XG4gICAgcHVibGljIHNlbGVjdGlvbjogRG9jdW1lbnRbXTtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICBwdWJsaWMgZWRpdDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcHJvY2Vzc1R5cGU6IFByb2Nlc3NUeXBlO1xuICAgIHB1YmxpYyBpc0NsaWVudGVFeHRlcm5vOiBib29sZWFuO1xuICAgIHB1YmxpYyBlbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gdHJ1ZTtcbiAgICBwdWJsaWMgaW52b2ljZUNvbmRpdGlvbnMgPSBnZXRJbnZvaWNlQ29uZGl0aW9ucyh0aGlzLnRyYW5zbGF0ZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1bW1hcnkgPSBcInltcy5pbnQud21zX3NhdmVkX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSB5YXJkOiBhbnk7XG4gICAgcHJpdmF0ZSBzY2hlZHVsZTogYW55O1xuXG4gICAgQFZpZXdDaGlsZChcImRvY3VtZW50VGFibGVcIilcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbVRlbXBsYXRlXCIpXG4gICAgcHVibGljIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUZpbHRlckZpZWxkc1wiKVxuICAgIHB1YmxpYyBjdXN0b21GaWx0ZXJGaWVsZHM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZENvbGdyb3VwXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRDb2xncm91cDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkSGVhZGVyXCIpXG4gICAgcHVibGljIGN1c3RvbUdyaWRIZWFkZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tR3JpZEJvZHlcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEJvZHk6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBnZXRGaWx0ZXJlZEludm9pY2VDb25kaXRpb25zKGludm9pY2VDb25kaXRpb25zOiBhbnkpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uIHwgbnVsbCB9W10ge1xuICAgICAgICBpZiAoaW52b2ljZUNvbmRpdGlvbnMgPT09IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2ljZUNvbmRpdGlvbnMuZmlsdGVyKGNvbmQgPT4gY29uZC52YWx1ZSA9PT0gSW52b2ljZUNvbmRpdGlvbi5BVVRIT1JJWkVEKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmludm9pY2VDb25kaXRpb25zLmZpbHRlcihjb25kID0+IGNvbmQudmFsdWUgIT09IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblNlcnZpY2U6IEludGVncmF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhZ2VuZGFTZXJ2aWNlOiBBZ2VuZGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHV0aWxzOiBVdGlsc01lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdtc1NlcnZpY2U6IEZvcm1XbXNTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyaWZ5Q2xpZW50ZUV4dGVybm8oKTtcbiAgICAgICAgdGhpcy5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpO1xuICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuXG4gICAgICAgIGlmKCF0aGlzLndtc1N5c3RlbSl7XG4gICAgICAgICAgICB0aGlzLndtc1NlcnZpY2UuZ2V0U3lzdGVtSW50ZWdyYXRpb24oKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgc3lzdGVtIH06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndtc1N5c3RlbSA9IHN5c3RlbTtcbiAgICAgICAgICAgICAgICAgICAgaWYoIHRoaXMuaXNXbXNTZW5pb3JDb25uZWN0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0WWFyZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRTY2hlZHVsZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRZYXJkKCl7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldFlhcmQodGhpcy5hZ2VuZGEucGxhbnRhLmlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMueWFyZCA9IGNvbnRlbnQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2NoZWR1bGUoKXtcbiAgICAgICAgaWYodGhpcy5hZ2VuZGEuZXh0ZXJuYWxUZW5hbnQgJiYgdGhpcy5hZ2VuZGEuZXh0ZXJuYWxUZW5hbnQuY25wail7XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlID0gdGhpcy5hZ2VuZGE7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFnZW5kYVNlcnZpY2UuZ2V0KHRoaXMuYWdlbmRhLmlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUgPSBjb250ZW50O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeUNsaWVudGVFeHRlcm5vKCkge1xuICAgICAgICB0aGlzLmFnZW5kYVNlcnZpY2UuaXNDbGllbnRlRXh0ZXJubygpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogSXNDbGllbnRlRXh0ZXJubykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0NsaWVudGVFeHRlcm5vID0gcmVzdWx0LmlzQ2xpZW50ZUV4dGVybm87XG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1ucygpO1xuICAgICAgICAgICAgdGhpcy5jYW50RWRpdFN0YXR1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCkge1xuICAgICAgICB0aGlzLmludGVncmF0aW9uU2VydmljZS5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZyh0aGlzLmFnZW5kYS50aXBvQWdlbmRhbWVudG8uaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0KSA9PiB0aGlzLnByb2Nlc3NUeXBlID0gcmVzdWx0LnByb2Nlc3NUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2VEb2N1bWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0ZpbGxlZFZhbHVlcyhkb2N1bWVudCkpe1xuICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwiZXJyb3JcIixcInltcy5pbnQud21zX3NhdmVfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfc2F2ZV9lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hc3NpZ25LZXlzKGRvY3VtZW50KTtcbiAgICAgICAgY29uc3QgZHVwbGljYXRlRG9jdW1lbnQgPSB0aGlzLmdyaWREYXRhLmZpbmQoZ3JpZERhdGEgPT4gZ3JpZERhdGEua2V5ID09PSBkb2N1bWVudC5rZXkpO1xuICAgICAgICBpZiAoZHVwbGljYXRlRG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcImVycm9yXCIsXCJ5bXMuaW50Lndtc19lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsXCJ5bXMuaW50Lndtc19lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YS5wdXNoKGRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIHRoaXMuc3VtbWFyeSwgXCJ5bXMuaW50Lndtc19zdWNjZXNzX21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlSW52b2ljZUtleSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXNzaWduS2V5cyhkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFnZW5kYS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQua2V5ID09PSB1bmRlZmluZWQgfHwgZG9jdW1lbnQua2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQua2V5ID0gZG9jdW1lbnQuaW52b2ljZUtleTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1dtc1dJUygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmtleSA9IGAke2RvY3VtZW50Lmludm9pY2VOdW1iZXJ9OiR7ZG9jdW1lbnQuaW52b2ljZVNlcmlhbE51bWJlcn06JHtkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0ZpbGxlZFZhbHVlcyhkb2N1bWVudDogRG9jdW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9ybVZhbHVlcy5zb21lKHZhbHVlID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJyk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGNhbnRFZGl0U3RhdHVzKCkge1xuICAgICAgICBjb25zdCBjYW50RWRpdFN0YXR1cyA9IFtcbiAgICAgICAgICAgICdDQU5DRUxBRE8nLFxuICAgICAgICAgICAgJ0VNX0VYRUNVQ0FPJyxcbiAgICAgICAgICAgICdDT05DTFVJRE8nLFxuICAgICAgICAgICAgJ0FHVUFSREFORE9fUE9SX1ZBTElEQUNBTydcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLmFnZW5kYS5zdGF0dXMudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYoY2FudEVkaXRTdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbnMoKTogTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19zZWFyY2hcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJbnZvaWNlS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmEgZmEtc2VhcmNoXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19hZGRfZG9jdW1lbnRfcmVnaXN0ZXJcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmFzIGZhLXBlbi1zcXVhcmVcIlxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja1dtc1N5c3RlbUludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSAmJiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLk5PTkUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJvcChvYmo6IGFueSwgcGF0aDogYW55KSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyB2aWV3KCkge1xuICAgICAgICB0aGlzLnZpZXdEb2N1bWVudC5lbWl0KHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgIHRoaXMuZWRpdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICBpZih0aGlzLmdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBpZighZGF0YS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZighZGF0YS5zY2hlZHVsaW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5rZXkgPSB0aGlzLnVwZGF0ZUtleUJ5V21zKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5pbnNlcnQoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjZXNzTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGUoZGF0YS5pZCwgZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjZXNzTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVLZXlCeVdtcyhkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGEua2V5KSB7XG4gICAgICAgICAgICBkYXRhLmtleSA9IGRhdGEuaW52b2ljZUtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVMpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gYCR7ZGF0YS5pbnZvaWNlTnVtYmVyfToke2RhdGEuaW52b2ljZVNlcmlhbE51bWJlcn06JHtkYXRhLnBhcnRuZXJEb2N1bWVudH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EZWxldGUoKSB7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVfY29uZmlybWF0aW9uX21lc3NhZ2VcIiksXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVfY29uZmlybWF0aW9uX3RpdGxlXCIpLFxuICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRoaXMuc2VsZWN0aW9uLm1hcChkb2N1bWVudCA9PiB0aGlzLmRvY3VtZW50U2VydmljZS5kZWxldGUoZG9jdW1lbnQuaWQpKSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcImRlbGV0ZWRfbWVzc2FnZV90aXRsZVwiLCBcImRlbGV0ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHModHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRG9jdW1lbnRJZklkVW5kZmluZWQoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZS5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4R3JpZERhdGEgPSB0aGlzLmdyaWREYXRhLmZpbmRJbmRleChkb2N1bWVudCA9PiBkb2N1bWVudC5rZXkgPT09IHZhbHVlLmtleSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnNwbGljZShpbmRleEdyaWREYXRhLCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90U2F2ZWREb2N1bWVudHMoKSA6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkRGF0YS5zb21lKGRvY3VtZW50ID0+ICFkb2N1bWVudC5pZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGxpc3REb2N1bWVudHMoaXNEZWxldGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UubGlzdCh7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeTogYHNjaGVkdWxpbmdJZCBlcSAnJHt0aGlzLmFnZW5kYS5pZH0nYCxcbiAgICAgICAgICAgIHNpemU6IDEwMFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50czogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyaWREYXRhID0gaXNEZWxldGUgPyB0aGlzLmdyaWREYXRhLmZpbHRlcihpdGVtID0+ICFpdGVtLmlkKSA6IFtdO1xuXG4gICAgICAgICAgICBpZihjb250ZW50cy50b3RhbEVsZW1lbnRzID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaCguLi5jb250ZW50cy5jb250ZW50cyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFRvdGFsUmVjb3JkcyA9IGNvbnRlbnRzLnRvdGFsRWxlbWVudHM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSB0aGlzLmdyaWREYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhhc0VsZW1lbnRXaXRob3V0SWQgPSB0aGlzLmdyaWREYXRhLnNvbWUoaXRlbSA9PiAhaXRlbS5pZCk7XG5cbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSAhaGFzRWxlbWVudFdpdGhvdXRJZDtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRHcmlkQ29sdW1ucygpIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMud21zU3lzdGVtKSB7XG4gICAgICAgICAgICBjYXNlIFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLndtc1NlbmlvckNvbm5lY3RJbnRlZ3JhdGlvbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBXbXNTeXN0ZW0uV0lTOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMud21zV2lzSW50ZWdyYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgV21zU3lzdGVtLlNFTklPUjpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLndtc1NpbHRJbnRlZ3JhdGlvbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3bXNTZW5pb3JDb25uZWN0SW50ZWdyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImtleVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19wdXJjaGFzZU9yZGVyXCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1ubG9naXN0Y1VuaXQoKVxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHdtc1dpc0ludGVncmF0aW9uKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gW1xuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5hZGRJbnZvaWNlU2l0dWF0aW9uSWZOb3RDbGllbnRlRXh0ZXJubyhjb2x1bW5zKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3bXNTaWx0SW50ZWdyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VLZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9rZXlcIikgfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCksXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9vd25lcl9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICAgICAgdGhpcy5hZGRJbnZvaWNlU2l0dWF0aW9uSWZOb3RDbGllbnRlRXh0ZXJubyhjb2x1bW5zKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5pbnZvaWNlQ29uZGl0aW9uKCkge1xuICAgICAgICByZXR1cm4geyBmaWVsZDogXCJpbnZvaWNlQ29uZGl0aW9uXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25cIikgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZU51bWJlclwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX251bWJlclwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlU2VyaWFsTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2Vfc2VyaWFsX251bWJlclwiKSB9LFxuICAgICAgICAgICAgLi4udGhpcy5nZXRDb2x1bW5QYXJ0bmVyKCksXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbmxvZ2lzdGNVbml0KClcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblBhcnRuZXIoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcInBhcnRuZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfcGFydG5lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1ubG9naXN0Y1VuaXQoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImxvZ2lzdGNVbml0TmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdERvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2xvZ2lzdGNfdW5pdF9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkSW52b2ljZVNpdHVhdGlvbklmTm90Q2xpZW50ZUV4dGVybm8oY29sdW1uczogYW55W10pIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQ2xpZW50ZUV4dGVybm8pIHtcbiAgICAgICAgICAgIGNvbHVtbnMucHVzaCh0aGlzLmdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXSVMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTaWx0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWNlc3NNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCB0aGlzLnN1bW1hcnksIFwic2F2ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZURvY3VtZW50KGRvY3VtZW50OiBhbnkpOiBib29sZWFue1xuICAgICAgICBpZiAodGhpcy5pc1dtc1NlbmlvckNvbm5lY3QoKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnlhcmQuY29kaWdvKXtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkTWVzc2FnZShcInltcy5pbnQueWFyZF9jb2RlX25vdF9mb3VuZF93YXJuaW5nX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2dpc3RjVW5pdERvY3VtZW50ICE9PSB0aGlzLnlhcmQuY29kaWdvKXtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkTWVzc2FnZShcInltcy5pbnQuZG9jdW1lbnRfeWFyZF9taXNtYXRjaF9hZ2VuZGFfd2FybmluZ19kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5zY2hlZHVsZS5leHRlcm5hbFRlbmFudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRNZXNzYWdlKFwieW1zLmludC5wYXJ0bmVyX25vdF9pbmZvcm1lZF9hZ2VuZGFfd2FybmluZ19kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnQgIT09IHRoaXMuc2NoZWR1bGUuZXh0ZXJuYWxUZW5hbnQuY25waikge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRNZXNzYWdlKFwieW1zLmludC5wYXJ0bmVyX2RpZmZlcnNfZnJvbV9hZ2VuZGFfd2FybmluZ19kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgcHJpdmF0ZSBidWlsZE1lc3NhZ2UoZGVzY3JpcHRpb246IGFueSl7XG4gICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50LmRvY3VtZW50b19pbnZhbGlkb193YXJuaW5nX2hlYWRlclwiLCBkZXNjcmlwdGlvbik7XG4gICAgfVxufVxuIl19
|
|
@@ -11,14 +11,16 @@ import { TranslateService } from "@ngx-translate/core";
|
|
|
11
11
|
import { ExternalTenantService } from "./../../../entities/external-tenant/external-tenant.service";
|
|
12
12
|
import { InvoiceCondition } from "./../../../entities/invoice-condition/invoice-condition";
|
|
13
13
|
import { Agenda } from '../../../../erp-senior/core/entities/agenda/agenda';
|
|
14
|
+
import { DocumentGridComponent } from "../document-grid.component";
|
|
14
15
|
let InsertKeyComponent = class InsertKeyComponent {
|
|
15
|
-
constructor(formBuilder, documentService, utils, confirmationService, translate, externalTenantService) {
|
|
16
|
+
constructor(formBuilder, documentService, utils, confirmationService, translate, externalTenantService, documentGridComponent) {
|
|
16
17
|
this.formBuilder = formBuilder;
|
|
17
18
|
this.documentService = documentService;
|
|
18
19
|
this.utils = utils;
|
|
19
20
|
this.confirmationService = confirmationService;
|
|
20
21
|
this.translate = translate;
|
|
21
22
|
this.externalTenantService = externalTenantService;
|
|
23
|
+
this.documentGridComponent = documentGridComponent;
|
|
22
24
|
this.visible = new EventEmitter();
|
|
23
25
|
this.document = new EventEmitter();
|
|
24
26
|
this.visibleChange = new EventEmitter();
|
|
@@ -27,7 +29,6 @@ let InsertKeyComponent = class InsertKeyComponent {
|
|
|
27
29
|
this.ngUnsubscribe = new Subject();
|
|
28
30
|
}
|
|
29
31
|
ngOnInit() {
|
|
30
|
-
this.getYard();
|
|
31
32
|
this.formGroup = this.formBuilder.group({
|
|
32
33
|
key: [undefined],
|
|
33
34
|
purchaseOrder: [undefined],
|
|
@@ -39,15 +40,6 @@ let InsertKeyComponent = class InsertKeyComponent {
|
|
|
39
40
|
this.validateKeyDetails(nf);
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
|
-
getYard() {
|
|
43
|
-
this.documentService.getPlanta(this.agenda.planta.id)
|
|
44
|
-
.pipe(catchError(err => {
|
|
45
|
-
return throwError(err);
|
|
46
|
-
}))
|
|
47
|
-
.subscribe((content) => {
|
|
48
|
-
this.planta = content;
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
43
|
isWmsWis() {
|
|
52
44
|
return this.wmsSystem === WmsSystem.WIS;
|
|
53
45
|
}
|
|
@@ -90,15 +82,8 @@ let InsertKeyComponent = class InsertKeyComponent {
|
|
|
90
82
|
return;
|
|
91
83
|
}
|
|
92
84
|
const document = content.contents[0];
|
|
93
|
-
if (this.
|
|
94
|
-
|
|
95
|
-
this.utils.message("warn", "yms.int.yard_code_not_found_warning_header", "yms.int.yard_code_not_found_warning_description");
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
if (document.logistcUnitDocument !== this.planta.codigo) {
|
|
99
|
-
this.utils.message("warn", "yms.int.document_yard_mismatch_agenda_warning_header", "yms.int.document_yard_mismatch_agenda_warning_description");
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
85
|
+
if (!this.documentGridComponent.validateDocument(document)) {
|
|
86
|
+
return;
|
|
102
87
|
}
|
|
103
88
|
document.invoiceKey = this.formGroup.get('key').value;
|
|
104
89
|
document.invoiceCondition = InvoiceCondition.AUTHORIZED;
|
|
@@ -219,7 +204,8 @@ InsertKeyComponent = tslib_1.__decorate([
|
|
|
219
204
|
UtilsMessageService,
|
|
220
205
|
ConfirmationService,
|
|
221
206
|
TranslateService,
|
|
222
|
-
ExternalTenantService
|
|
207
|
+
ExternalTenantService,
|
|
208
|
+
DocumentGridComponent])
|
|
223
209
|
], InsertKeyComponent);
|
|
224
210
|
export { InsertKeyComponent };
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBUTVFLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBbUIzQixZQUNxQixXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxLQUEwQixFQUMxQixtQkFBd0MsRUFDeEMsU0FBMkIsRUFDM0IscUJBQTRD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N0IsZ0JBQWdCO1FBQ0oscUJBQXFCO0dBekJ4RCxrQkFBa0IsQ0FrTzlCO1NBbE9ZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXRpbHNNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy91dGlscy1tZXNzYWdlXCI7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW0nO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmREb2N1bWVudHNJbnB1dCB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZmluZC1kb2N1bWVudHMtaW5wdXQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBFeHRlcm5hbFRlbmFudFNlcnZpY2UgfSBmcm9tIFwiLi8uLi8uLi8uLi9lbnRpdGllcy9leHRlcm5hbC10ZW5hbnQvZXh0ZXJuYWwtdGVuYW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IERvY3VtZW50IH0gZnJvbSBcIi4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnRcIjtcbmltcG9ydCB7IEludm9pY2VDb25kaXRpb24gfSBmcm9tIFwiLi8uLi8uLi8uLi9lbnRpdGllcy9pbnZvaWNlLWNvbmRpdGlvbi9pbnZvaWNlLWNvbmRpdGlvblwiO1xuaW1wb3J0IHsgQWdlbmRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImluc2VydC1rZXlcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2luc2VydC1rZXkuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFsnLi9pbnNlcnQta2V5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5zZXJ0S2V5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBcbiAgICBASW5wdXQoKSBhZ2VuZGE6IEFnZW5kYTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBASW5wdXQoKSB2aXNpYmxlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRvY3VtZW50OiBFdmVudEVtaXR0ZXI8RG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBrZXlFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGlzUGFydG5lcmxvYWRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHBsYW50YTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHV0aWxzOiBVdGlsc01lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4dGVybmFsVGVuYW50U2VydmljZTogRXh0ZXJuYWxUZW5hbnRTZXJ2aWNlLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFlhcmQoKTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAga2V5OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHB1cmNoYXNlT3JkZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZU51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlU2VyaWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiBbdW5kZWZpbmVkXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKG5mOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGVLZXlEZXRhaWxzKG5mKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRZYXJkKCl7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldFBsYW50YSh0aGlzLmFnZW5kYS5wbGFudGEuaWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wbGFudGEgPSBjb250ZW50O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICB0aGlzLnNlYXJjaEtleSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoS2V5KCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qga2V5OiBGaW5kRG9jdW1lbnRzSW5wdXQgPSB7XG4gICAgICAgICAgICBwdXJjaGFzZU9yZGVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3B1cmNoYXNlT3JkZXInKS52YWx1ZSxcbiAgICAgICAgICAgIGRvY3VtZW50S2V5czogW3RoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVdLFxuICAgICAgICAgICAgaW52b2ljZXM6IFt7XG4gICAgICAgICAgICAgICAgbnVtYmVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBzZXJpYWxOdW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykudmFsdWUsXG4gICAgICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnZhbHVlXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2l6ZTogMCxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmZpbmREb2N1bWVudHMoa2V5KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yICYmIGVyci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcImVycm9yXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfaGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInltcy5pbnQud21zX2Vycm9yX3NlYXJjaF9kb2N1bWVudF9ub3RfZm91bmRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMudHJhbnNsYXRlTWVzc2FnZShcImVycm9yXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfaGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInltcy5pbnQud21zX2Vycm9yX3Vua25vd25fc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfY29udGVudCBcIiArIGVyci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1JbnZvaWNlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC50b3RhbEVsZW1lbnRzIDwgMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IGNvbnRlbnQuY29udGVudHNbMF07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzV21zU2VuaW9yQ29ubmVjdCgpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBsYW50YS5jb2RpZ28pe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJ3YXJuXCIsIFwieW1zLmludC55YXJkX2NvZGVfbm90X2ZvdW5kX3dhcm5pbmdfaGVhZGVyXCIsIFwieW1zLmludC55YXJkX2NvZGVfbm90X2ZvdW5kX3dhcm5pbmdfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5sb2dpc3RjVW5pdERvY3VtZW50ICE9PSB0aGlzLnBsYW50YS5jb2RpZ28pe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJ3YXJuXCIsIFwieW1zLmludC5kb2N1bWVudF95YXJkX21pc21hdGNoX2FnZW5kYV93YXJuaW5nX2hlYWRlclwiLCBcInltcy5pbnQuZG9jdW1lbnRfeWFyZF9taXNtYXRjaF9hZ2VuZGFfd2FybmluZ19kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZG9jdW1lbnQuaW52b2ljZUtleSA9IHRoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWU7XG4gICAgICAgICAgICBkb2N1bWVudC5pbnZvaWNlQ29uZGl0aW9uID0gSW52b2ljZUNvbmRpdGlvbi5BVVRIT1JJWkVEO1xuXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmVtaXQoZG9jdW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpcm1JbnZvaWNlRGlhbG9nKCkge1xuICAgICAgICBpZiAodGhpcy5pc1dtc1dpcygpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX21lc3NhZ2VfY29uZmlybV9pbnZvaWNlX2RpYWxvZ1wiKSxcbiAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2FjY2VwdF9jb25maXJtX2ludm9pY2VfZGlhbG9nXCIpLFxuICAgICAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVqZWN0X2NvbmZpcm1faW52b2ljZV9kaWFsb2dcIiksXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfaGVhZGVyX2NvbnRlbnRfY29uZmlybV9pbnZvaWNlX2RpYWxvZ1wiKSxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMuYnVpbGRJbnZvaWNlKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEludm9pY2UoKXtcbiAgICAgICAgdGhpcy5pc1BhcnRuZXJsb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBwYXJ0bmVyRG9jdW1lbnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnZhbHVlO1xuICAgICAgICB0aGlzLmV4dGVybmFsVGVuYW50U2VydmljZS5saXN0KHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiBgY25waiBlcSAnJHtwYXJ0bmVyRG9jdW1lbnR9J2BcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUGFydG5lcmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRJbnZvaWNlID0gdGhpcy5jcmVhdGVEb2N1bWVudEludm9pY2UoY29udGVudHMpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5lbWl0KGRvY3VtZW50SW52b2ljZSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURvY3VtZW50SW52b2ljZShwYXJ0bmVyczogYW55KTogRG9jdW1lbnQge1xuICAgICAgICBjb25zdCBkb2N1bWVudEludm9pY2U6IERvY3VtZW50ID0ge1xuICAgICAgICAgICAgaW52b2ljZUtleTogdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS52YWx1ZSxcbiAgICAgICAgICAgIGludm9pY2VOdW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZU51bWJlcicpLnZhbHVlLFxuICAgICAgICAgICAgaW52b2ljZVNlcmlhbE51bWJlcjogdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWUnKS52YWx1ZSxcbiAgICAgICAgICAgIHBhcnRuZXJEb2N1bWVudDogdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS52YWx1ZSxcbiAgICAgICAgICAgIHBhcnRuZXJOYW1lOiBudWxsLFxuICAgICAgICAgICAgdHlwZTogbnVsbCxcbiAgICAgICAgICAgIGtleTogbnVsbCxcbiAgICAgICAgICAgIHNjaGVkdWxpbmdJZDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChwYXJ0bmVycy50b3RhbEVsZW1lbnRzID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFydG5lciA9IHBhcnRuZXJzLmNvbnRlbnRzWzBdO1xuICAgICAgICAgICAgZG9jdW1lbnRJbnZvaWNlLnBhcnRuZXJOYW1lID0gcGFydG5lci5kZXNjcmljYW87XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZG9jdW1lbnRJbnZvaWNlO1xuICAgIH1cbiAgICBwcml2YXRlIHZhbGlkYXRlS2V5RGV0YWlscyhuZjogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmYpIHtcbiAgICAgICAgICAgIHRoaXMua2V5RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzT2ZLZXkodW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZkxlbmd0aCA9IDQ0O1xuICAgICAgICBpZiAobmYubGVuZ3RoID09PSBuZkxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5rZXlFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5leHRyYWN0S2V5RGV0YWlscyhuZik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtleUVycm9yTWVzc2FnZSA9IFwieW1zLmludC53bXNfZXJyb3Jfa2V5X21lc3NhZ2VcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZXh0cmFjdEtleURldGFpbHMobmY6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzdGFydENucGogPSA2O1xuICAgICAgICBjb25zdCBlbmRDbnBqID0gMjA7XG4gICAgICAgIGNvbnN0IGNucGogPSBuZi5zdWJzdHJpbmcoc3RhcnRDbnBqLCBlbmRDbnBqKTtcblxuICAgICAgICBjb25zdCBzdGFydFNlcmllID0gMjI7XG4gICAgICAgIGNvbnN0IGVuZFNlcmllID0gMjU7XG4gICAgICAgIGNvbnN0IHNlcmllID0gbmYuc3Vic3RyaW5nKHN0YXJ0U2VyaWUsIGVuZFNlcmllKTtcblxuICAgICAgICBjb25zdCBzdGFydEludm9pY2UgPSAyNTtcbiAgICAgICAgY29uc3QgZW5kSW52b2ljZSA9IDM0O1xuICAgICAgICBjb25zdCBpbnZvaWNlID0gbmYuc3Vic3RyaW5nKHN0YXJ0SW52b2ljZSwgZW5kSW52b2ljZSk7XG5cbiAgICAgICAgdGhpcy5zZXRWYWx1ZXNPZktleShpbnZvaWNlLCBzZXJpZSwgY25waik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZXNPZktleShpbnZvaWNlTnVtYmVyOiBzdHJpbmcsIGludm9pY2VTZXJpZTogc3RyaW5nLCBwYXJ0bmVyRG9jdW1lbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS5zZXRWYWx1ZShpbnZvaWNlTnVtYmVyKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlU2VyaWUnKS5zZXRWYWx1ZShpbnZvaWNlU2VyaWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnNldFZhbHVlKHBhcnRuZXJEb2N1bWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIG9uRGlhbG9nU2hvdygpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG59Il19
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFFcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBT25FLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBaUIzQixZQUNxQixXQUF3QixFQUN4QixlQUFnQyxFQUNo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LGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDSixDQUFBO0FBeE1ZO0lBQVIsS0FBSyxFQUFFO3NDQUFTLE1BQU07a0RBQUM7QUFDZjtJQUFSLEtBQUssRUFBRTs7cURBQXNCO0FBQ3JCO0lBQVIsS0FBSyxFQUFFO3NDQUFVLFlBQVk7bURBQStCO0FBQ25EO0lBQVQsTUFBTSxFQUFFO3NDQUFXLFlBQVk7b0RBQWdDO0FBQ3REO0lBQVQsTUFBTSxFQUFFOzt5REFBb0M7QUFOcEMsa0JBQWtCO0lBTDlCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLHNvRkFBMEM7O0tBRTdDLENBQUM7NkNBbUJvQyxXQUFXO1FBQ1AsZUFBZTtRQUN6QixtQkFBbUI7UUFDTCxtQkFBbUI7UUFDN0IsZ0JBQWdCO1FBQ0oscUJBQXFCO1FBQ3JCLHFCQUFxQjtHQXhCeEQsa0JBQWtCLENBME05QjtTQTFNWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvdXRpbHMtbWVzc2FnZVwiO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5kRG9jdW1lbnRzSW5wdXQgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2ZpbmQtZG9jdW1lbnRzLWlucHV0JztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgRXh0ZXJuYWxUZW5hbnRTZXJ2aWNlIH0gZnJvbSBcIi4vLi4vLi4vLi4vZW50aXRpZXMvZXh0ZXJuYWwtdGVuYW50L2V4dGVybmFsLXRlbmFudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gXCIuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50XCI7XG5pbXBvcnQgeyBJbnZvaWNlQ29uZGl0aW9uIH0gZnJvbSBcIi4vLi4vLi4vLi4vZW50aXRpZXMvaW52b2ljZS1jb25kaXRpb24vaW52b2ljZS1jb25kaXRpb25cIjtcbmltcG9ydCB7IEFnZW5kYSB9IGZyb20gJy4uLy4uLy4uLy4uL2VycC1zZW5pb3IvY29yZS9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhJztcbmltcG9ydCB7IERvY3VtZW50R3JpZENvbXBvbmVudCB9IGZyb20gXCIuLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJpbnNlcnQta2V5XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pbnNlcnQta2V5LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5zZXJ0LWtleS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluc2VydEtleUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgXG4gICAgQElucHV0KCkgYWdlbmRhOiBBZ2VuZGE7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQElucHV0KCkgdmlzaWJsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBkb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcbiAgICBwdWJsaWMga2V5RXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpc1BhcnRuZXJsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHV0aWxzOiBVdGlsc01lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4dGVybmFsVGVuYW50U2VydmljZTogRXh0ZXJuYWxUZW5hbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50R3JpZENvbXBvbmVudDogRG9jdW1lbnRHcmlkQ29tcG9uZW50XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBrZXk6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcHVyY2hhc2VPcmRlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgobmY6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUtleURldGFpbHMobmYpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICB0aGlzLnNlYXJjaEtleSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoS2V5KCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qga2V5OiBGaW5kRG9jdW1lbnRzSW5wdXQgPSB7XG4gICAgICAgICAgICBwdXJjaGFzZU9yZGVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3B1cmNoYXNlT3JkZXInKS52YWx1ZSxcbiAgICAgICAgICAgIGRvY3VtZW50S2V5czogW3RoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVdLFxuICAgICAgICAgICAgaW52b2ljZXM6IFt7XG4gICAgICAgICAgICAgICAgbnVtYmVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBzZXJpYWxOdW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykudmFsdWUsXG4gICAgICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnZhbHVlXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2l6ZTogMCxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmZpbmREb2N1bWVudHMoa2V5KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyLmVycm9yICYmIGVyci5lcnJvci5tZXNzYWdlLmluY2x1ZGVzKFwiNDA0XCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcImVycm9yXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfaGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInltcy5pbnQud21zX2Vycm9yX3NlYXJjaF9kb2N1bWVudF9ub3RfZm91bmRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMudHJhbnNsYXRlTWVzc2FnZShcImVycm9yXCIsIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfaGVhZGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInltcy5pbnQud21zX2Vycm9yX3Vua25vd25fc2VhcmNoX2RvY3VtZW50X21lc3NhZ2VfY29udGVudCBcIiArIGVyci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1JbnZvaWNlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC50b3RhbEVsZW1lbnRzIDwgMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IGNvbnRlbnQuY29udGVudHNbMF07XG4gICAgICAgICAgICBpZiAoIXRoaXMuZG9jdW1lbnRHcmlkQ29tcG9uZW50LnZhbGlkYXRlRG9jdW1lbnQoZG9jdW1lbnQpKXtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRvY3VtZW50Lmludm9pY2VLZXkgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnZhbHVlO1xuICAgICAgICAgICAgZG9jdW1lbnQuaW52b2ljZUNvbmRpdGlvbiA9IEludm9pY2VDb25kaXRpb24uQVVUSE9SSVpFRDtcblxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5lbWl0KGRvY3VtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maXJtSW52b2ljZURpYWxvZygpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNXbXNXaXMoKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19tZXNzYWdlX2NvbmZpcm1faW52b2ljZV9kaWFsb2dcIiksXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19hY2NlcHRfY29uZmlybV9pbnZvaWNlX2RpYWxvZ1wiKSxcbiAgICAgICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlamVjdF9jb25maXJtX2ludm9pY2VfZGlhbG9nXCIpLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2hlYWRlcl9jb250ZW50X2NvbmZpcm1faW52b2ljZV9kaWFsb2dcIiksXG4gICAgICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB0aGlzLmJ1aWxkSW52b2ljZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRJbnZvaWNlKCl7XG4gICAgICAgIHRoaXMuaXNQYXJ0bmVybG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgcGFydG5lckRvY3VtZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS52YWx1ZTtcbiAgICAgICAgdGhpcy5leHRlcm5hbFRlbmFudFNlcnZpY2UubGlzdCh7XG4gICAgICAgICAgICBmaWx0ZXJRdWVyeTogYGNucGogZXEgJyR7cGFydG5lckRvY3VtZW50fSdgXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BhcnRuZXJsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SW52b2ljZSA9IHRoaXMuY3JlYXRlRG9jdW1lbnRJbnZvaWNlKGNvbnRlbnRzKTtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChkb2N1bWVudEludm9pY2UpO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEludm9pY2UocGFydG5lcnM6IGFueSk6IERvY3VtZW50IHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRJbnZvaWNlOiBEb2N1bWVudCA9IHtcbiAgICAgICAgICAgIGludm9pY2VLZXk6IHRoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWUsXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS52YWx1ZSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpYWxOdW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykudmFsdWUsXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IHRoaXMuZm9ybUdyb3VwLmdldCgncGFydG5lckRvY3VtZW50JykudmFsdWUsXG4gICAgICAgICAgICBwYXJ0bmVyTmFtZTogbnVsbCxcbiAgICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgICAgICBrZXk6IG51bGwsXG4gICAgICAgICAgICBzY2hlZHVsaW5nSWQ6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocGFydG5lcnMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRuZXIgPSBwYXJ0bmVycy5jb250ZW50c1swXTtcbiAgICAgICAgICAgIGRvY3VtZW50SW52b2ljZS5wYXJ0bmVyTmFtZSA9IHBhcnRuZXIuZGVzY3JpY2FvO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRvY3VtZW50SW52b2ljZTtcbiAgICB9XG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUtleURldGFpbHMobmY6IHN0cmluZykge1xuICAgICAgICBpZiAoIW5mKSB7XG4gICAgICAgICAgICB0aGlzLmtleUVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc09mS2V5KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmZMZW5ndGggPSA0NDtcbiAgICAgICAgaWYgKG5mLmxlbmd0aCA9PT0gbmZMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMua2V5RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdEtleURldGFpbHMobmYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5rZXlFcnJvck1lc3NhZ2UgPSBcInltcy5pbnQud21zX2Vycm9yX2tleV9tZXNzYWdlXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RLZXlEZXRhaWxzKG5mOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRDbnBqID0gNjtcbiAgICAgICAgY29uc3QgZW5kQ25waiA9IDIwO1xuICAgICAgICBjb25zdCBjbnBqID0gbmYuc3Vic3RyaW5nKHN0YXJ0Q25waiwgZW5kQ25waik7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRTZXJpZSA9IDIyO1xuICAgICAgICBjb25zdCBlbmRTZXJpZSA9IDI1O1xuICAgICAgICBjb25zdCBzZXJpZSA9IG5mLnN1YnN0cmluZyhzdGFydFNlcmllLCBlbmRTZXJpZSk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRJbnZvaWNlID0gMjU7XG4gICAgICAgIGNvbnN0IGVuZEludm9pY2UgPSAzNDtcbiAgICAgICAgY29uc3QgaW52b2ljZSA9IG5mLnN1YnN0cmluZyhzdGFydEludm9pY2UsIGVuZEludm9pY2UpO1xuXG4gICAgICAgIHRoaXMuc2V0VmFsdWVzT2ZLZXkoaW52b2ljZSwgc2VyaWUsIGNucGopO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVzT2ZLZXkoaW52b2ljZU51bWJlcjogc3RyaW5nLCBpbnZvaWNlU2VyaWU6IHN0cmluZywgcGFydG5lckRvY3VtZW50OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykuc2V0VmFsdWUoaW52b2ljZU51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykuc2V0VmFsdWUoaW52b2ljZVNlcmllKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShwYXJ0bmVyRG9jdW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBvbkRpYWxvZ1Nob3coKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfVxufSJdfQ==
|
package/esm2015/src/wms/components/document-grid/register-document/register-document.component.js
CHANGED
|
@@ -6,16 +6,12 @@ import { Document } from '../../../entities/document/document';
|
|
|
6
6
|
import { WmsSystem } from "../../../entities/wms-system/wms-system";
|
|
7
7
|
import { TranslateService } from "@ngx-translate/core";
|
|
8
8
|
import { getInvoiceConditions } from "../../utils/invoice-conditions";
|
|
9
|
-
import {
|
|
10
|
-
import { DocumentService } from './../../../entities/document/document.service';
|
|
11
|
-
import { throwError } from "rxjs";
|
|
12
|
-
import { catchError } from 'rxjs/operators';
|
|
9
|
+
import { DocumentGridComponent } from "../document-grid.component";
|
|
13
10
|
let RegisterDocumentComponent = class RegisterDocumentComponent {
|
|
14
|
-
constructor(fb, translate,
|
|
11
|
+
constructor(fb, translate, documentGridComponent) {
|
|
15
12
|
this.fb = fb;
|
|
16
13
|
this.translate = translate;
|
|
17
|
-
this.
|
|
18
|
-
this.documentService = documentService;
|
|
14
|
+
this.documentGridComponent = documentGridComponent;
|
|
19
15
|
this.document = new EventEmitter();
|
|
20
16
|
this.visible = new EventEmitter();
|
|
21
17
|
this.visibleChange = new EventEmitter();
|
|
@@ -23,22 +19,12 @@ let RegisterDocumentComponent = class RegisterDocumentComponent {
|
|
|
23
19
|
this.invoiceCondition = getInvoiceConditions(this.translate);
|
|
24
20
|
}
|
|
25
21
|
ngOnInit() {
|
|
26
|
-
this.getYard();
|
|
27
22
|
this.getFormGroup();
|
|
28
23
|
this.watchFormChanges();
|
|
29
24
|
}
|
|
30
25
|
ngOnChanges() {
|
|
31
26
|
this.visibilityConfig();
|
|
32
27
|
}
|
|
33
|
-
getYard() {
|
|
34
|
-
this.documentService.getPlanta(this.agenda.planta.id)
|
|
35
|
-
.pipe(catchError(err => {
|
|
36
|
-
return throwError(err);
|
|
37
|
-
}))
|
|
38
|
-
.subscribe((content) => {
|
|
39
|
-
this.planta = content;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
28
|
visibilityConfig() {
|
|
43
29
|
if (!this.edit && this.visible) {
|
|
44
30
|
this.formGroup.disable();
|
|
@@ -89,18 +75,10 @@ let RegisterDocumentComponent = class RegisterDocumentComponent {
|
|
|
89
75
|
});
|
|
90
76
|
}
|
|
91
77
|
save() {
|
|
92
|
-
if (this.isWmsSeniorConnect()) {
|
|
93
|
-
if (!this.planta.codigo) {
|
|
94
|
-
this.utils.message("warn", "yms.int.yard_code_not_found_warning_header", "yms.int.yard_code_not_found_warning_description");
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const logistcUnitDocument = this.formGroup.get("logistcUnitDocument").value;
|
|
98
|
-
if (logistcUnitDocument !== this.planta.codigo) {
|
|
99
|
-
this.utils.message("warn", "yms.int.document_yard_mismatch_agenda_warning_header", "yms.int.document_yard_mismatch_agenda_warning_description");
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
78
|
this.document.emit(Document.fromDto(this.formGroup.getRawValue()));
|
|
79
|
+
if (!this.documentGridComponent.validateDocument(document)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
104
82
|
this.formGroup.reset();
|
|
105
83
|
}
|
|
106
84
|
isWmsWis() {
|
|
@@ -158,8 +136,7 @@ RegisterDocumentComponent = tslib_1.__decorate([
|
|
|
158
136
|
}),
|
|
159
137
|
tslib_1.__metadata("design:paramtypes", [FormBuilder,
|
|
160
138
|
TranslateService,
|
|
161
|
-
|
|
162
|
-
DocumentService])
|
|
139
|
+
DocumentGridComponent])
|
|
163
140
|
], RegisterDocumentComponent);
|
|
164
141
|
export { RegisterDocumentComponent };
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLNUMsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFrQmxDLFlBQ3FCLEVBQWUsRUFDZixTQUEyQixFQUMzQixLQUEwQixFQUMxQixlQUFnQztRQUhoQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtB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TSxDQUFDO0lBQy9DLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxjQUFjLENBQUM7SUFDdkQsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFBO0FBeElZO0lBQVIsS0FBSyxFQUFFOzsrREFBMEI7QUFDekI7SUFBUixLQUFLLEVBQUU7O3VEQUFlO0FBQ2Q7SUFBUixLQUFLLEVBQUU7c0NBQVMsTUFBTTt5REFBQztBQUNmO0lBQVIsS0FBSyxFQUFFOzttRUFBMkI7QUFDekI7SUFBVCxNQUFNLEVBQUU7c0NBQVcsWUFBWTsyREFBZ0M7QUFDdkQ7SUFBUixLQUFLLEVBQUU7OzREQUFzQjtBQUNyQjtJQUFSLEtBQUssRUFBRTtzQ0FBVSxZQUFZOzBEQUErQjtBQUNuRDtJQUFULE1BQU0sRUFBRTs7Z0VBQW9DO0FBVHBDLHlCQUF5QjtJQUpyQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLDA4SkFBaUQ7S0FDcEQsQ0FBQzs2Q0FvQjJCLFdBQVc7UUFDSixnQkFBZ0I7UUFDcEIsbUJBQW1CO1FBQ1QsZUFBZTtHQXRCNUMseUJBQXlCLENBMElyQztTQTFJWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWdlbmRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtXCI7XG5pbXBvcnQgeyBJbnZvaWNlQ29uZGl0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IGdldEludm9pY2VDb25kaXRpb25zIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2ludm9pY2UtY29uZGl0aW9uc1wiO1xuaW1wb3J0IHsgVXRpbHNNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy91dGlscy1tZXNzYWdlXCI7XG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicmVnaXN0ZXItZG9jdW1lbnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC5odG1sXCIsXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdGVyRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoKSB2aWV3RG9jdW1lbnQ6IERvY3VtZW50W107XG4gICAgQElucHV0KCkgZWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhZ2VuZGE6IEFnZW5kYTtcbiAgICBASW5wdXQoKSBpc0NsaWVudGVFeHRlcm5vOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBkb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBASW5wdXQoKSB2aXNpYmxlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGhpZGVTYXZlQnV0dG9uOiBib29sZWFuO1xuICAgIHB1YmxpYyBpc1NhdmVGb3JtVmFsaWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaW52b2ljZUNvbmRpdGlvbiA9IGdldEludm9pY2VDb25kaXRpb25zKHRoaXMudHJhbnNsYXRlKTtcblxuICAgIHByaXZhdGUgcGxhbnRhOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHV0aWxzOiBVdGlsc01lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFlhcmQoKTtcbiAgICAgICAgdGhpcy5nZXRGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy53YXRjaEZvcm1DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJpbGl0eUNvbmZpZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0WWFyZCgpe1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRQbGFudGEodGhpcy5hZ2VuZGEucGxhbnRhLmlkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGxhbnRhID0gY29udGVudDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZpc2liaWxpdHlDb25maWcoKSB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0ICYmIHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JtR3JvdXAodGhpcy52aWV3RG9jdW1lbnRbMF0pO1xuICAgICAgICAgICAgdGhpcy5oaWRlU2F2ZUJ1dHRvbiA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5oaWRlU2F2ZUJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZXNGb3JtR3JvdXAoZG9jdW1lbnQ6IERvY3VtZW50KSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgna2V5Jykuc2V0VmFsdWUoZG9jdW1lbnQua2V5KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlS2V5Jykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZUtleSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZU51bWJlcicpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VOdW1iZXIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VTZXJpYWxOdW1iZXInKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlU2VyaWFsTnVtYmVyKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdsb2dpc3RjVW5pdERvY3VtZW50Jykuc2V0VmFsdWUoZG9jdW1lbnQubG9naXN0Y1VuaXREb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnbG9naXN0Y1VuaXROYW1lJykuc2V0VmFsdWUoZG9jdW1lbnQubG9naXN0Y1VuaXROYW1lKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdub3RlcycpLnNldFZhbHVlKGRvY3VtZW50Lm5vdGVzKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjb2RlJykuc2V0VmFsdWUoZG9jdW1lbnQuY29kZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgncGFydG5lck5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5wYXJ0bmVyTmFtZSk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgncGFydG5lckRvY3VtZW50Jykuc2V0VmFsdWUoZG9jdW1lbnQucGFydG5lckRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdvd25lckRvY3VtZW50Jykuc2V0VmFsdWUoZG9jdW1lbnQub3duZXJEb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnb3duZXJOYW1lJykuc2V0VmFsdWUoZG9jdW1lbnQub3duZXJOYW1lKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlQ29uZGl0aW9uJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZUNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBrZXk6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgICAgaW52b2ljZUtleTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBzY2hlZHVsaW5nSWQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZU51bWJlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlU2VyaWFsTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBsb2dpc3RjVW5pdERvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG93bmVyTmFtZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBvd25lckRvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHBhcnRuZXJOYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHBhcnRuZXJEb2N1bWVudDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBub3RlczogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBjb2RlOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VDb25kaXRpb246IFt1bmRlZmluZWRdLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmlzV21zU2VuaW9yQ29ubmVjdCgpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGxhbnRhLmNvZGlnbyl7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwid2FyblwiLCBcInltcy5pbnQueWFyZF9jb2RlX25vdF9mb3VuZF93YXJuaW5nX2hlYWRlclwiLCBcInltcy5pbnQueWFyZF9jb2RlX25vdF9mb3VuZF93YXJuaW5nX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgbG9naXN0Y1VuaXREb2N1bWVudD0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwibG9naXN0Y1VuaXREb2N1bWVudFwiKS52YWx1ZTtcbiAgICAgICAgICAgIGlmIChsb2dpc3RjVW5pdERvY3VtZW50ICE9PSB0aGlzLnBsYW50YS5jb2RpZ28pe1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50LmRvY3VtZW50X3lhcmRfbWlzbWF0Y2hfYWdlbmRhX3dhcm5pbmdfaGVhZGVyXCIsIFwieW1zLmludC5kb2N1bWVudF95YXJkX21pc21hdGNoX2FnZW5kYV93YXJuaW5nX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZG9jdW1lbnQuZW1pdChEb2N1bWVudC5mcm9tRHRvKHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoRm9ybUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5pc1NhdmVGb3JtVmFsaWQgPSBmb3JtVmFsdWVzLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItZG9jdW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy93bXMvY29tcG9uZW50cy9kb2N1bWVudC1ncmlkL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU1uRSxJQUFhLHlCQUF5QixHQUF0QyxNQUFhLHlCQUF5QjtJQWdCbEMsWUFDcUIsRUFBZSxFQUNmLFNBQTJCLEVBQzNCLHFCQUE0QztRQUY1QyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQWJ2RCxhQUFRLEdBQTJCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkQsWUFBTyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl0QyxvQkFBZSxH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Q29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWdlbmRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtXCI7XG5pbXBvcnQgeyBJbnZvaWNlQ29uZGl0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2VudGl0aWVzL2ludm9pY2UtY29uZGl0aW9uL2ludm9pY2UtY29uZGl0aW9uXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IGdldEludm9pY2VDb25kaXRpb25zIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2ludm9pY2UtY29uZGl0aW9uc1wiO1xuaW1wb3J0IHsgRG9jdW1lbnRHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2RvY3VtZW50LWdyaWQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInJlZ2lzdGVyLWRvY3VtZW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9yZWdpc3Rlci1kb2N1bWVudC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlckRvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgdmlld0RvY3VtZW50OiBEb2N1bWVudFtdO1xuICAgIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWdlbmRhOiBBZ2VuZGE7XG4gICAgQElucHV0KCkgaXNDbGllbnRlRXh0ZXJubzogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgZG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQElucHV0KCkgdmlzaWJsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBoaWRlU2F2ZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXNTYXZlRm9ybVZhbGlkID0gZmFsc2U7XG4gICAgcHVibGljIGludm9pY2VDb25kaXRpb24gPSBnZXRJbnZvaWNlQ29uZGl0aW9ucyh0aGlzLnRyYW5zbGF0ZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50R3JpZENvbXBvbmVudDogRG9jdW1lbnRHcmlkQ29tcG9uZW50XG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0Rm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMud2F0Y2hGb3JtQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpc2liaWxpdHlDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmlzaWJpbGl0eUNvbmZpZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXQgJiYgdGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc0Zvcm1Hcm91cCh0aGlzLnZpZXdEb2N1bWVudFswXSk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZW5hYmxlKCk7XG4gICAgICAgICAgICB0aGlzLmhpZGVTYXZlQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFZhbHVlc0Zvcm1Hcm91cChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdrZXknKS5zZXRWYWx1ZShkb2N1bWVudC5rZXkpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VLZXknKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlS2V5KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykuc2V0VmFsdWUoZG9jdW1lbnQuaW52b2ljZU51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmlhbE51bWJlcicpLnNldFZhbHVlKGRvY3VtZW50Lmludm9pY2VTZXJpYWxOdW1iZXIpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2xvZ2lzdGNVbml0RG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdERvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdsb2dpc3RjVW5pdE5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5sb2dpc3RjVW5pdE5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ25vdGVzJykuc2V0VmFsdWUoZG9jdW1lbnQubm90ZXMpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2NvZGUnKS5zZXRWYWx1ZShkb2N1bWVudC5jb2RlKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyTmFtZScpLnNldFZhbHVlKGRvY3VtZW50LnBhcnRuZXJOYW1lKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ293bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lckRvY3VtZW50KTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdvd25lck5hbWUnKS5zZXRWYWx1ZShkb2N1bWVudC5vd25lck5hbWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VDb25kaXRpb24nKS5zZXRWYWx1ZShkb2N1bWVudC5pbnZvaWNlQ29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGtleTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBpbnZvaWNlS2V5OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIHNjaGVkdWxpbmdJZDogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpYWxOdW1iZXI6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgbG9naXN0Y1VuaXROYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0RG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgb3duZXJOYW1lOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lck5hbWU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIG5vdGVzOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGNvZGU6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgaW52b2ljZUNvbmRpdGlvbjogW3VuZGVmaW5lZF0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmVtaXQoRG9jdW1lbnQuZnJvbUR0byh0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKSk7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudEdyaWRDb21wb25lbnQudmFsaWRhdGVEb2N1bWVudChkb2N1bWVudCkpe1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhdGNoRm9ybUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5pc1NhdmVGb3JtVmFsaWQgPSBmb3JtVmFsdWVzLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -15,8 +15,8 @@ let DocumentService = class DocumentService extends EntityService {
|
|
|
15
15
|
getSystemIntegration() {
|
|
16
16
|
return this.http.get('yms_int/wms/queries/getSystemIntegration');
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
return this.http.get('yms/patio/entities/planta/' +
|
|
18
|
+
getYard(yardId) {
|
|
19
|
+
return this.http.get('yms/patio/entities/planta/' + yardId);
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
DocumentService = tslib_1.__decorate([
|
|
@@ -24,4 +24,4 @@ DocumentService = tslib_1.__decorate([
|
|
|
24
24
|
tslib_1.__metadata("design:paramtypes", [HttpClient, MessageService])
|
|
25
25
|
], DocumentService);
|
|
26
26
|
export { DocumentService };
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvd21zL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTdDLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWdCLFNBQVEsYUFBMEI7SUFDM0QsWUFBc0IsSUFBZ0IsRUFBWSxjQUE4QjtRQUM1RSxLQUFLLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSwrQkFBK0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUQvQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRWhGLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBeUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQWM7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0osQ0FBQTtBQWhCWSxlQUFlO0lBRDNCLFVBQVUsRUFBRTs2Q0FFbUIsVUFBVSxFQUE0QixjQUFjO0dBRHZFLGVBQWUsQ0FnQjNCO1NBaEJZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9zYW0tc2VuaW9yL2NvcmUvZW50aXR5LXNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnREdG8gfSBmcm9tICcuL2RvY3VtZW50LWR0byc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBGaW5kRG9jdW1lbnRzSW5wdXQgfSBmcm9tICcuL2ZpbmQtZG9jdW1lbnRzLWlucHV0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY3VtZW50U2VydmljZSBleHRlbmRzIEVudGl0eVNlcnZpY2U8RG9jdW1lbnREdG8+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCwgcHJvdGVjdGVkIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge1xuICAgICAgICBzdXBlcihodHRwLCBtZXNzYWdlU2VydmljZSwgJ3ltc19pbnQvd21zL2VudGl0aWVzL2RvY3VtZW50JywgJycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5kRG9jdW1lbnRzKGlucHV0OiBGaW5kRG9jdW1lbnRzSW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KCd5bXNfaW50L3dtcy9xdWVyaWVzL2ZpbmREb2N1bWVudHMnLCBpbnB1dCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFN5c3RlbUludGVncmF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCgneW1zX2ludC93bXMvcXVlcmllcy9nZXRTeXN0ZW1JbnRlZ3JhdGlvbicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZYXJkKHlhcmRJZDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KCd5bXMvcGF0aW8vZW50aXRpZXMvcGxhbnRhLycgKyB5YXJkSWQpO1xuICAgIH1cbn1cbiJdfQ==
|