uitec-ng-upload-order 1.0.15 → 1.1.0

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.
@@ -1,20 +1,27 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
1
+ import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from "@angular/core";
2
2
  import { FilePondComponent } from "ngx-filepond";
3
3
  import { Lightbox } from "ngx-lightbox";
4
4
  import { Observable } from "rxjs";
5
5
  import { UntypedFormGroup } from "@angular/forms";
6
+ import { HttpClient, HttpEventType } from "@angular/common/http";
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "ngx-lightbox";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "ngx-filepond";
9
+ import * as i2 from "@angular/common/http";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "ngx-filepond";
12
+ import * as i5 from "uitec-ng-icon";
10
13
  export class UiUploadOrderComponent {
11
- constructor(_lightbox) {
14
+ constructor(_lightbox, http) {
12
15
  this._lightbox = _lightbox;
16
+ this.http = http;
13
17
  this.multiple = true;
14
18
  this.reorder = true;
15
19
  this.maxFiles = 10;
16
20
  this.lightBox = true;
17
21
  this.instantUpload = true;
22
+ this.errorPosition = 'right';
23
+ this.circle = false;
24
+ this.onPreviewRemove = new EventEmitter();
18
25
  this.onRemove = new EventEmitter();
19
26
  this.onAdded = new EventEmitter();
20
27
  this.onAllAdded = new EventEmitter();
@@ -28,7 +35,11 @@ export class UiUploadOrderComponent {
28
35
  // public pondFiles: FilePondOptions["files"] = [];
29
36
  this.pondFiles = [];
30
37
  this.album = [];
31
- this.pondFilesInitialized = false;
38
+ this.removerPreview = () => {
39
+ this.control?.setValue(null);
40
+ this.control?.markAsDirty();
41
+ this.onPreviewRemove.emit();
42
+ };
32
43
  }
33
44
  ngOnInit() {
34
45
  this.pondOptions = {
@@ -53,53 +64,51 @@ export class UiUploadOrderComponent {
53
64
  itemInsertLocation: "after",
54
65
  credits: false,
55
66
  server: {
56
- process: (fieldName, file, metadata, load, error, progress, abort, transfer, options) => {
57
- // fieldName is the name of the input field
58
- // file is the actual file object to send
67
+ process: (fieldName, file, metadata, load, error, progress, abort) => {
59
68
  const formData = new FormData();
60
69
  formData.append(fieldName, file, file.name);
61
- const request = new XMLHttpRequest();
62
- request.open("POST", this.url);
63
- // Should call the progress method to update the progress to 100% before calling load
64
- // Setting computable to false switches the loading indicator to infinite mode
65
- request.upload.onprogress = (e) => {
66
- progress(e.lengthComputable, e.loaded, e.total);
67
- };
68
- // Should call the load method when done and pass the returned server file id
69
- // this server file id is then used later on when reverting or restoring a file
70
- // so your server knows which file to return without exposing that info to the client
71
- request.onload = function () {
72
- if (request.status >= 200 && request.status < 300) {
73
- // the load method accepts either a string (id) or an object
74
- // load(request.responseText);
75
- try {
76
- // Extrai o nome do arquivo do array
77
- const response = JSON.parse(request.responseText);
78
- if (Array.isArray(response) && response.length > 0) {
79
- const serverId = response[0];
70
+ const request = this.http
71
+ .post(this.url, formData, {
72
+ reportProgress: true,
73
+ observe: "events",
74
+ })
75
+ .subscribe({
76
+ next: (event) => {
77
+ if (event.type === HttpEventType.UploadProgress) {
78
+ progress(event.lengthComputable, event.loaded, event.total);
79
+ }
80
+ else if (event.type === HttpEventType.Response) {
81
+ try {
82
+ const response = event.body;
83
+ let serverId;
84
+ if (Array.isArray(response) && response.length > 0) {
85
+ serverId = response[0];
86
+ }
87
+ else if (response && (response.serverId || response.id)) {
88
+ serverId = response.serverId || response.id;
89
+ }
90
+ else {
91
+ error("Resposta do servidor inválida: serverId não encontrado");
92
+ return;
93
+ }
80
94
  load(serverId);
81
95
  }
82
- else {
83
- error("Resposta do servidor inválida: nome do arquivo não encontrado");
96
+ catch (e) {
97
+ console.error("Erro ao processar resposta do servidor:", e);
98
+ error("Erro ao processar resposta do servidor");
84
99
  }
85
100
  }
86
- catch (e) {
87
- console.error("Erro ao processar resposta do servidor:", e);
88
- error("Erro ao processar resposta do servidor");
89
- }
90
- }
91
- else {
92
- // Can call the error method if something is wrong, should exit after
93
- error("oh no");
94
- }
95
- };
96
- request.send(formData);
97
- // Should expose an abort method so the request can be cancelled
101
+ },
102
+ error: (err) => {
103
+ error("Erro no upload: " + err.message);
104
+ },
105
+ complete: () => {
106
+ request.unsubscribe();
107
+ },
108
+ });
98
109
  return {
99
110
  abort: () => {
100
- // This function is entered if the user has tapped the cancel button
101
- request.abort();
102
- // Let FilePond know the request has been cancelled
111
+ request.unsubscribe();
103
112
  abort();
104
113
  },
105
114
  };
@@ -133,46 +142,21 @@ export class UiUploadOrderComponent {
133
142
  });
134
143
  },
135
144
  remove: (source, load, error) => {
145
+ if (!source) {
146
+ error("Nome do arquivo não fornecido");
147
+ return;
148
+ }
136
149
  const fileName = source.split("/").pop();
137
- const request = new XMLHttpRequest();
138
- request.open("POST", `${this.deleteUrl}${encodeURIComponent(fileName)}`);
139
- request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
140
- request.onload = function () {
141
- if (request.status >= 200 && request.status < 300) {
142
- load();
143
- this.onRemove.emit(fileName);
144
- }
145
- else {
146
- error(`Erro ao remover o arquivo: ${request.statusText}`);
147
- }
148
- }.bind(this);
149
- const body = ``;
150
- request.onerror = function () {
151
- console.error("Erro de rede ao tentar remover o arquivo");
152
- error("Erro de rede ao tentar remover o arquivo");
153
- };
154
- request.send(body);
150
+ load();
151
+ this.onRemove.emit(fileName);
155
152
  },
156
153
  revert: (uniqueFileId, load, error) => {
157
154
  if (!uniqueFileId) {
158
155
  error("Nome do arquivo não fornecido");
159
156
  return;
160
157
  }
161
- const request = new XMLHttpRequest();
162
- const fullUrl = `${this.deleteUrl}${encodeURIComponent(uniqueFileId)}`;
163
- request.open("POST", fullUrl);
164
- request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
165
- request.onload = () => {
166
- if (request.status >= 200 && request.status < 300) {
167
- load();
168
- this.onRemove.emit(uniqueFileId);
169
- }
170
- else {
171
- error(`Erro ao reverter o upload: ${request.statusText}`);
172
- }
173
- };
174
- request.onerror = () => error("Erro de rede ao tentar reverter o upload");
175
- request.send("");
158
+ load();
159
+ this.onRemove.emit(uniqueFileId);
176
160
  },
177
161
  },
178
162
  };
@@ -293,20 +277,26 @@ export class UiUploadOrderComponent {
293
277
  const files = this.pond.getFiles();
294
278
  files.length > 0 ? this.pond.processFiles() : this.noFilesAdded.emit();
295
279
  }
280
+ get control() {
281
+ return this.form?.get(this.controlName);
282
+ }
296
283
  isErrorMessage() {
297
- let control = this.form?.get(this.controlName);
284
+ let control = this.control;
298
285
  if (control?.errors?.required && (!this.pond || this.pond.getFiles().length === 0)) {
299
286
  return "Obrigatório";
300
287
  }
301
288
  return null;
302
289
  }
290
+ isPreviewVisible() {
291
+ return !this.multiple && !!this.previewUrl;
292
+ }
303
293
  }
304
- UiUploadOrderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, deps: [{ token: i1.Lightbox }], target: i0.ɵɵFactoryTarget.Component });
305
- UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", form: "form", controlName: "controlName", url: "url", deleteUrl: "deleteUrl", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload" }, outputs: { onRemove: "onRemove", onAdded: "onAdded", onAllAdded: "onAllAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected", noFilesAdded: "noFilesAdded", onUploadError: "onUploadError" }, viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- app.component.html -->\r\n<div class=\"position-relative\" [class.upload-invalid]=\"isErrorMessage()\">\r\n <file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfiles)=\"pondHandleAllFilesAdded($event)\" (onprocessfile)=\"pondHandleAddFile($event)\"\r\n (onerror)=\"pondHandleError()\" />\r\n\r\n <div class=\"invalid-tooltip\" [class]=\"'tooltip-' + errorPosition\" [class.touched]=\"control?.touched\"\r\n *ngIf=\"isErrorMessage()\">\r\n {{isErrorMessage()}}\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .ng-submitted .upload-invalid .filepond--panel-root{border-color:#fc4438}::ng-deep .ng-submitted .upload-invalid .invalid-tooltip{display:block;transform:translate(-50%,-50%);top:0;right:0}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }] });
294
+ UiUploadOrderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, deps: [{ token: i1.Lightbox }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
295
+ UiUploadOrderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UiUploadOrderComponent, selector: "ui-upload-order", inputs: { uploadObservable: "uploadObservable", form: "form", controlName: "controlName", url: "url", initialFiles: "initialFiles", multiple: "multiple", reorder: "reorder", maxFiles: "maxFiles", transparent: "transparent", lightBox: "lightBox", instantUpload: "instantUpload", errorPosition: "errorPosition", previewUrl: "previewUrl", circle: "circle" }, outputs: { onPreviewRemove: "onPreviewRemove", onRemove: "onRemove", onAdded: "onAdded", onAllAdded: "onAllAdded", onActivate: "onActivate", onInit: "onInit", onMaxReached: "onMaxReached", onReOrder: "onReOrder", onSelected: "onSelected", noFilesAdded: "noFilesAdded", onUploadError: "onUploadError" }, queries: [{ propertyName: "previewTemplate", first: true, predicate: ["preview"], descendants: true }], viewQueries: [{ propertyName: "myPond", first: true, predicate: ["myPond"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isPreviewVisible(); else uploader\" class=\"upload-preview\" [class.upload-preview-circle]=\"circle\">\n <ng-container *ngIf=\"previewTemplate; else previewPadrao\"\n [ngTemplateOutlet]=\"previewTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: previewUrl, remover: removerPreview }\">\n </ng-container>\n\n <ng-template #previewPadrao>\n <img class=\"upload-preview-imagem\" [src]=\"previewUrl\" alt=\"\">\n <a href=\"javascript:void(0)\" class=\"btn btn-sm btn-icon upload-preview-remover\" (click)=\"removerPreview()\">\n <ui-icon icon=\"delete_forever\"></ui-icon>Remover imagem\n </a>\n </ng-template>\n</div>\n\n<ng-template #uploader>\n <div class=\"position-relative\" [class.upload-invalid]=\"isErrorMessage()\">\n <file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\n (onactivatefile)=\"pondHandleActivateFile($event)\"\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\n (onprocessfiles)=\"pondHandleAllFilesAdded($event)\" (onprocessfile)=\"pondHandleAddFile($event)\"\n (onerror)=\"pondHandleError()\"/>\n\n <div class=\"invalid-tooltip\" [class]=\"'tooltip-' + errorPosition\" [class.touched]=\"control?.touched\"\n *ngIf=\"isErrorMessage()\">\n {{isErrorMessage()}}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .ng-submitted .upload-invalid .filepond--panel-root{border-color:#fc4438}::ng-deep .ng-submitted .upload-invalid .invalid-tooltip{display:block;transform:translate(-50%,-50%);top:0;right:0}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}.upload-preview{position:relative;display:flex;flex-direction:column;align-items:flex-start}.upload-preview .upload-preview-imagem{max-height:100px;width:auto;margin:1rem 0;object-fit:cover}.upload-preview.upload-preview-circle .upload-preview-imagem{width:100px;height:100px;border-radius:50%}.upload-preview .upload-preview-remover{color:var(--ui-placeholder)}.upload-preview .upload-preview-remover:hover{color:var(--ui-text-danger, #dc3545)}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.FilePondComponent, selector: "file-pond", inputs: ["options", "files"], outputs: ["oninit", "onwarning", "onerror", "oninitfile", "onactivatefile", "onaddfilestart", "onaddfileprogress", "onaddfile", "onprocessfilestart", "onprocessfileprogress", "onprocessfileabort", "onprocessfilerevert", "onprocessfile", "onprocessfiles", "onremovefile", "onpreparefile", "onupdatefiles", "onreorderfiles"] }, { kind: "component", type: i5.UiIconComponent, selector: "ui-icon", inputs: ["icon", "size", "class"] }] });
306
296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderComponent, decorators: [{
307
297
  type: Component,
308
- args: [{ selector: "ui-upload-order", template: "<!-- app.component.html -->\r\n<div class=\"position-relative\" [class.upload-invalid]=\"isErrorMessage()\">\r\n <file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\r\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\r\n (onactivatefile)=\"pondHandleActivateFile($event)\"\r\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\r\n (onprocessfiles)=\"pondHandleAllFilesAdded($event)\" (onprocessfile)=\"pondHandleAddFile($event)\"\r\n (onerror)=\"pondHandleError()\" />\r\n\r\n <div class=\"invalid-tooltip\" [class]=\"'tooltip-' + errorPosition\" [class.touched]=\"control?.touched\"\r\n *ngIf=\"isErrorMessage()\">\r\n {{isErrorMessage()}}\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .ng-submitted .upload-invalid .filepond--panel-root{border-color:#fc4438}::ng-deep .ng-submitted .upload-invalid .invalid-tooltip{display:block;transform:translate(-50%,-50%);top:0;right:0}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
309
- }], ctorParameters: function () { return [{ type: i1.Lightbox }]; }, propDecorators: { uploadObservable: [{
298
+ args: [{ selector: "ui-upload-order", template: "<div *ngIf=\"isPreviewVisible(); else uploader\" class=\"upload-preview\" [class.upload-preview-circle]=\"circle\">\n <ng-container *ngIf=\"previewTemplate; else previewPadrao\"\n [ngTemplateOutlet]=\"previewTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: previewUrl, remover: removerPreview }\">\n </ng-container>\n\n <ng-template #previewPadrao>\n <img class=\"upload-preview-imagem\" [src]=\"previewUrl\" alt=\"\">\n <a href=\"javascript:void(0)\" class=\"btn btn-sm btn-icon upload-preview-remover\" (click)=\"removerPreview()\">\n <ui-icon icon=\"delete_forever\"></ui-icon>Remover imagem\n </a>\n </ng-template>\n</div>\n\n<ng-template #uploader>\n <div class=\"position-relative\" [class.upload-invalid]=\"isErrorMessage()\">\n <file-pond #myPond name='UploadForm[imagem][]' [class.file-pont-transparent]=\"transparent\" [options]=\"pondOptions\"\n (oninit)=\"pondHandleInit($event)\" [files]=\"pondFiles\" (onupdatefiles)=\"pondHandleUpdate($event)\"\n (onactivatefile)=\"pondHandleActivateFile($event)\"\n (onreorderfiles)=\"onReorderFiles($event)\" (onwarning)=\"warning($event)\"\n (onprocessfiles)=\"pondHandleAllFilesAdded($event)\" (onprocessfile)=\"pondHandleAddFile($event)\"\n (onerror)=\"pondHandleError()\"/>\n\n <div class=\"invalid-tooltip\" [class]=\"'tooltip-' + errorPosition\" [class.touched]=\"control?.touched\"\n *ngIf=\"isErrorMessage()\">\n {{isErrorMessage()}}\n </div>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .filepond--list-scroller{width:calc(100% - 25px);margin:auto;padding-bottom:20px}:host ::ng-deep .filepond--drop-label{color:#555;justify-content:flex-start;margin-left:20px}:host ::ng-deep .filepond--label-action{color:var(--theme-default);text-decoration-color:var(--theme-default)}:host ::ng-deep .filepond--panel-root{background-color:#fff;border:1.5px solid rgba(173,181,189,.5019607843);border-style:dashed;height:12%}:host ::ng-deep .filepond--image-preview-overlay{display:none}:host ::ng-deep .filepond--file-action-button{background-color:var(--theme-secondary);display:none}:host ::ng-deep .file-pont-transparent .filepond--image-preview,:host ::ng-deep .file-pont-transparent .filepond--item-panel{background:transparent!important}:host ::ng-deep .file-pont-transparent .filepond--file-info{display:none}:host ::ng-deep .file-pont-transparent .filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:none}:host ::ng-deep .filepond--file:hover .filepond--file-action-button{display:block}@media (max-width: 800px){:host ::ng-deep .filepond--panel-root{height:5%}}@media (max-width: 480px){:host ::ng-deep .filepond--panel-root{height:2%}}::ng-deep .ng-submitted .upload-invalid .filepond--panel-root{border-color:#fc4438}::ng-deep .ng-submitted .upload-invalid .invalid-tooltip{display:block;transform:translate(-50%,-50%);top:0;right:0}::ng-deep .dark-only .filepond--panel-root{background:transparent!important}::ng-deep .dark-only .filepond--drop-label{color:#ffffffb3}.upload-preview{position:relative;display:flex;flex-direction:column;align-items:flex-start}.upload-preview .upload-preview-imagem{max-height:100px;width:auto;margin:1rem 0;object-fit:cover}.upload-preview.upload-preview-circle .upload-preview-imagem{width:100px;height:100px;border-radius:50%}.upload-preview .upload-preview-remover{color:var(--ui-placeholder)}.upload-preview .upload-preview-remover:hover{color:var(--ui-text-danger, #dc3545)}@media (min-width: 30em){:host ::ng-deep .filepond--item{width:calc(40% - .5em)}}@media (min-width: 50em){:host ::ng-deep .filepond--item{width:calc(25% - 7px)}}\n"] }]
299
+ }], ctorParameters: function () { return [{ type: i1.Lightbox }, { type: i2.HttpClient }]; }, propDecorators: { uploadObservable: [{
310
300
  type: Input
311
301
  }], form: [{
312
302
  type: Input
@@ -314,8 +304,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
314
304
  type: Input
315
305
  }], url: [{
316
306
  type: Input
317
- }], deleteUrl: [{
318
- type: Input
319
307
  }], initialFiles: [{
320
308
  type: Input
321
309
  }], multiple: [{
@@ -330,6 +318,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
330
318
  type: Input
331
319
  }], instantUpload: [{
332
320
  type: Input
321
+ }], errorPosition: [{
322
+ type: Input
323
+ }], previewUrl: [{
324
+ type: Input
325
+ }], circle: [{
326
+ type: Input
327
+ }], onPreviewRemove: [{
328
+ type: Output
333
329
  }], onRemove: [{
334
330
  type: Output
335
331
  }], onAdded: [{
@@ -353,5 +349,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
353
349
  }], myPond: [{
354
350
  type: ViewChild,
355
351
  args: ["myPond"]
352
+ }], previewTemplate: [{
353
+ type: ContentChild,
354
+ args: ["preview"]
356
355
  }] } });
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS11cGxvYWQtb3JkZXIvc3JjL2xpYi91aS11cGxvYWQtb3JkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVqRCxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVFsRCxNQUFNLE9BQU8sc0JBQXNCO0lBOEIvQixZQUFvQixTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBcEI5QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRTdCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDdEQs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O2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVjLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGaWxlUG9uZENvbXBvbmVudCB9IGZyb20gXCJuZ3gtZmlsZXBvbmRcIjtcclxuaW1wb3J0IHsgRmlsZVBvbmQsIEZpbGVQb25kRmlsZSwgRmlsZVBvbmRJbml0aWFsRmlsZSwgRmlsZVBvbmRPcHRpb25zIH0gZnJvbSBcImZpbGVwb25kXCI7XHJcbmltcG9ydCB7IElBbGJ1bSwgTGlnaHRib3ggfSBmcm9tIFwibmd4LWxpZ2h0Ym94XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgbG9nIH0gZnJvbSBcImNvbnNvbGVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidWktdXBsb2FkLW9yZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpVXBsb2FkT3JkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHVwbG9hZE9ic2VydmFibGU6IE9ic2VydmFibGU8dm9pZD47XHJcbiAgICBwcml2YXRlIGV2ZW50c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIHVybDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGVsZXRlVXJsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbml0aWFsRmlsZXM6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcmVvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyID0gMTA7XHJcbiAgICBASW5wdXQoKSB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxpZ2h0Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGluc3RhbnRVcGxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG9uQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkFsbEFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZEZpbGU+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZE9wdGlvbnNbXCJmaWxlc1wiXT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbk1heFJlYWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlT3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb25kRmlsZVtdPigpO1xyXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBub0ZpbGVzQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblVwbG9hZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcIm15UG9uZFwiKSBteVBvbmQ6IEZpbGVQb25kQ29tcG9uZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xpZ2h0Ym94OiBMaWdodGJveCkge31cclxuXHJcbiAgICBwdWJsaWMgcG9uZDogRmlsZVBvbmQ7XHJcbiAgICBwdWJsaWMgcG9uZE9wdGlvbnM6IEZpbGVQb25kT3B0aW9ucztcclxuICAgIC8vIHB1YmxpYyBwb25kRmlsZXM6IEZpbGVQb25kT3B0aW9uc1tcImZpbGVzXCJdID0gW107XHJcbiAgICBwdWJsaWMgcG9uZEZpbGVzOiBGaWxlUG9uZEluaXRpYWxGaWxlW10gPSBbXTtcclxuICAgIHB1YmxpYyBhbGJ1bTogSUFsYnVtW10gPSBbXTtcclxuICAgIHB1YmxpYyBwb25kRmlsZXNJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucG9uZE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgICAgIGxhYmVsSWRsZTpcclxuICAgICAgICAgICAgICAgICdBcnJhc3RlIHNldXMgYXJxdWl2b3Mgb3UgPHNwYW4gY2xhc3M9XCJmaWxlcG9uZC0tbGFiZWwtYWN0aW9uXCI+Y2xpcXVlIGFxdWk8L3NwYW4+IHBhcmEgc2VsZWNpb25hci4nLFxyXG4gICAgICAgICAgICBhbGxvd1Jlb3JkZXI6IHRoaXMucmVvcmRlcixcclxuICAgICAgICAgICAgbWF4RmlsZXM6IHRoaXMubWF4RmlsZXMsXHJcbiAgICAgICAgICAgIGFjY2VwdGVkRmlsZVR5cGVzOiBbXCJpbWFnZS8qXCJdLFxyXG4gICAgICAgICAgICBpbnN0YW50VXBsb2FkOiB0aGlzLmluc3RhbnRVcGxvYWQsXHJcbiAgICAgICAgICAgIGFsbG93UHJvY2VzczogdGhpcy5pbnN0YW50VXBsb2FkLFxyXG4gICAgICAgICAgICBkcm9wVmFsaWRhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgaWNvblJlbW92ZTogYDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8bWFzayBpZD1cIm1hc2swXzM3MDY3XzM0MTQ2XCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjAuMTMwODU5XCIgeT1cIjAuNjMxNTkyXCIgd2lkdGg9XCIxNC43MzY4XCIgaGVpZ2h0PVwiMTQuNzM2OFwiIGZpbGw9XCIjRDlEOUQ5XCIvPlxyXG4gICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgIDxnIG1hc2s9XCJ1cmwoI21hc2swXzM3MDY3XzM0MTQ2KVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTQuNDMgMTMuNTI2M0M0LjA5MjI4IDEzLjUyNjMgMy44MDMxNyAxMy40MDYgMy41NjI2NyAxMy4xNjU1QzMuMzIyMTcgMTIuOTI1IDMuMjAxOTMgMTIuNjM1OSAzLjIwMTkzIDEyLjI5ODJWNC4zMTU3NEMzLjAyNzk1IDQuMzE1NzQgMi44ODIxMiA0LjI1Njg5IDIuNzY0NDMgNC4xMzkyQzIuNjQ2NzQgNC4wMjE1MSAyLjU4Nzg5IDMuODc1NjggMi41ODc4OSAzLjcwMTdDMi41ODc4OSAzLjUyNzczIDIuNjQ2NzQgMy4zODE4OSAyLjc2NDQzIDMuMjY0MkMyLjg4MjEyIDMuMTQ2NTEgMy4wMjc5NSAzLjA4NzY3IDMuMjAxOTMgMy4wODc2N0g1LjY1ODA3QzUuNjU4MDcgMi45MTM2OSA1LjcxNjkxIDIuNzY3ODYgNS44MzQ2IDIuNjUwMTdDNS45NTIyOSAyLjUzMjQ4IDYuMDk4MTIgMi40NzM2MyA2LjI3MjEgMi40NzM2M0g4LjcyODI0QzguOTAyMjIgMi40NzM2MyA5LjA0ODA1IDIuNTMyNDggOS4xNjU3NCAyLjY1MDE3QzkuMjgzNDMgMi43Njc4NiA5LjM0MjI4IDIuOTEzNjkgOS4zNDIyOCAzLjA4NzY3SDExLjc5ODRDMTEuOTcyNCAzLjA4NzY3IDEyLjExODIgMy4xNDY1MSAxMi4yMzU5IDMuMjY0MkMxMi4zNTM2IDMuMzgxODkgMTIuNDEyNSAzLjUyNzczIDEyLjQxMjUgMy43MDE3QzEyLjQxMjUgMy44NzU2OCAxMi4zNTM2IDQuMDIxNTEgMTIuMjM1OSA0LjEzOTJDMTIuMTE4MiA0LjI1Njg5IDExLjk3MjQgNC4zMTU3NCAxMS43OTg0IDQuMzE1NzRWMTIuMjk4MkMxMS43OTg0IDEyLjYzNTkgMTEuNjc4MiAxMi45MjUgMTEuNDM3NyAxMy4xNjU1QzExLjE5NzIgMTMuNDA2IDEwLjkwODEgMTMuNTI2MyAxMC41NzAzIDEzLjUyNjNINC40M1pNNC40MyA0LjMxNTc0VjEyLjI5ODJIMTAuNTcwM1Y0LjMxNTc0SDQuNDNaTTcuNTAwMTcgOS4xNjY2Mkw4LjY2Njg0IDEwLjMzMzNDOC43ODk2NSAxMC40NDU5IDguOTM1NDggMTAuNTAyMSA5LjEwNDM0IDEwLjUwMjFDOS4yNzMyIDEwLjUwMjEgOS40MTM5MSAxMC40NDU5IDkuNTI2NDkgMTAuMzMzM0M5LjY0OTI5IDEwLjIxMDUgOS43MTA3IDEwLjA2NDYgOS43MTA3IDkuODk1NzhDOS43MTA3IDkuNzI2OTIgOS42NDkyOSA5LjU4NjIxIDkuNTI2NDkgOS40NzM2M0w4LjM1OTgyIDguMzA2OTdMOS41MjY0OSA3LjE0MDNDOS42NDkyOSA3LjAxNzQ5IDkuNzEwNyA2Ljg3MTY2IDkuNzEwNyA2LjcwMjhDOS43MTA3IDYuNTMzOTQgOS42NDkyOSA2LjM5MzIyIDkuNTI2NDkgNi4yODA2NUM5LjQxMzkxIDYuMTU3ODQgOS4yNzMyIDYuMDk2NDQgOS4xMDQzNCA2LjA5NjQ0QzguOTM1NDggNi4wOTY0NCA4Ljc4OTY1IDYuMTU3ODQgOC42NjY4NCA2LjI4MDY1TDcuNTAwMTcgNy40NDczMkw2LjMzMzUgNi4yODA2NUM2LjIyMDkzIDYuMTU3ODQgNi4wODAyMiA2LjA5NjQ0IDUuOTExMzYgNi4wOTY0NEM1Ljc0MjUgNi4wOTY0NCA1LjU5NjY2IDYuMTU3ODQgNS40NzM4NiA2LjI4MDY1QzUuMzYxMjggNi4zOTMyMiA1LjMwNSA2LjUzMzk0IDUuMzA1IDYuNzAyOEM1LjMwNSA2Ljg3MTY2IDUuMzYxMjggNy4wMTc0OSA1LjQ3Mzg2IDcuMTQwM0w2LjY0MDUyIDguMzA2OTdMNS40NzM4NiA5LjQ3MzYzQzUuMzYxMjggOS41ODYyMSA1LjMwNSA5LjcyNjkyIDUuMzA1IDkuODk1NzhDNS4zMDUgMTAuMDY0NiA1LjM2MTI4IDEwLjIxMDUgNS40NzM4NiAxMC4zMzMzQzUuNTk2NjYgMTAuNDQ1OSA1Ljc0MjUgMTAuNTAyMSA1LjkxMTM2IDEwLjUwMjFDNi4wODAyMiAxMC41MDIxIDYuMjIwOTMgMTAuNDQ1OSA2LjMzMzUgMTAuMzMzM0w3LjUwMDE3IDkuMTY2NjJaXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICA8L2c+PC9zdmc+YCxcclxuICAgICAgICAgICAgc3R5bGVCdXR0b25SZW1vdmVJdGVtUG9zaXRpb246IFwicmlnaHRcIixcclxuICAgICAgICAgICAgaW1hZ2VSZXNpemVNb2RlOiBcImNvbnRhaW5cIixcclxuICAgICAgICAgICAgc3R5bGVJdGVtUGFuZWxBc3BlY3RSYXRpbzogXCIwLjc1XCIsXHJcbiAgICAgICAgICAgIGl0ZW1JbnNlcnRMb2NhdGlvbjogXCJhZnRlclwiLFxyXG4gICAgICAgICAgICBjcmVkaXRzOiBmYWxzZSxcclxuICAgICAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzOiAoZmllbGROYW1lLCBmaWxlLCBtZXRhZGF0YSwgbG9hZCwgZXJyb3IsIHByb2dyZXNzLCBhYm9ydCwgdHJhbnNmZXIsIG9wdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBmaWVsZE5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZmlsZSBpcyB0aGUgYWN0dWFsIGZpbGUgb2JqZWN0IHRvIHNlbmRcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmaWVsZE5hbWUsIGZpbGUsIGZpbGUubmFtZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lm9wZW4oXCJQT1NUXCIsIHRoaXMudXJsKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gU2hvdWxkIGNhbGwgdGhlIHByb2dyZXNzIG1ldGhvZCB0byB1cGRhdGUgdGhlIHByb2dyZXNzIHRvIDEwMCUgYmVmb3JlIGNhbGxpbmcgbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNldHRpbmcgY29tcHV0YWJsZSB0byBmYWxzZSBzd2l0Y2hlcyB0aGUgbG9hZGluZyBpbmRpY2F0b3IgdG8gaW5maW5pdGUgbW9kZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QudXBsb2FkLm9ucHJvZ3Jlc3MgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyhlLmxlbmd0aENvbXB1dGFibGUsIGUubG9hZGVkLCBlLnRvdGFsKTtcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBTaG91bGQgY2FsbCB0aGUgbG9hZCBtZXRob2Qgd2hlbiBkb25lIGFuZCBwYXNzIHRoZSByZXR1cm5lZCBzZXJ2ZXIgZmlsZSBpZFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2VydmVyIGZpbGUgaWQgaXMgdGhlbiB1c2VkIGxhdGVyIG9uIHdoZW4gcmV2ZXJ0aW5nIG9yIHJlc3RvcmluZyBhIGZpbGVcclxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB5b3VyIHNlcnZlciBrbm93cyB3aGljaCBmaWxlIHRvIHJldHVybiB3aXRob3V0IGV4cG9zaW5nIHRoYXQgaW5mbyB0byB0aGUgY2xpZW50XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgcmVxdWVzdC5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBsb2FkIG1ldGhvZCBhY2NlcHRzIGVpdGhlciBhIHN0cmluZyAoaWQpIG9yIGFuIG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9hZChyZXF1ZXN0LnJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEV4dHJhaSBvIG5vbWUgZG8gYXJxdWl2byBkbyBhcnJheVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXF1ZXN0LnJlc3BvbnNlVGV4dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2UpICYmIHJlc3BvbnNlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VydmVySWQgPSByZXNwb25zZVswXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZChzZXJ2ZXJJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJSZXNwb3N0YSBkbyBzZXJ2aWRvciBpbnbDoWxpZGE6IG5vbWUgZG8gYXJxdWl2byBuw6NvIGVuY29udHJhZG9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvIGFvIHByb2Nlc3NhciByZXNwb3N0YSBkbyBzZXJ2aWRvcjpcIiwgZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJFcnJvIGFvIHByb2Nlc3NhciByZXNwb3N0YSBkbyBzZXJ2aWRvclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhbiBjYWxsIHRoZSBlcnJvciBtZXRob2QgaWYgc29tZXRoaW5nIGlzIHdyb25nLCBzaG91bGQgZXhpdCBhZnRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJvaCBub1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2VuZChmb3JtRGF0YSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCBleHBvc2UgYW4gYWJvcnQgbWV0aG9kIHNvIHRoZSByZXF1ZXN0IGNhbiBiZSBjYW5jZWxsZWRcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhYm9ydDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBlbnRlcmVkIGlmIHRoZSB1c2VyIGhhcyB0YXBwZWQgdGhlIGNhbmNlbCBidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWJvcnQoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXQgRmlsZVBvbmQga25vdyB0aGUgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgbG9hZDogKHNvdXJjZSwgbG9hZCwgZXJyb3IsIHByb2dyZXNzLCBhYm9ydCwgaGVhZGVycykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG15UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2gobXlSZXF1ZXN0KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJybyBhbyBjYXJyZWdhciBpbWFnZW06XCIsIHJlc3BvbnNlLnN0YXR1cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJFcnJvIGFvIGNhcnJlZ2FyIGEgaW1hZ2VtXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkudGhlbigoYnVmZmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gc291cmNlLnNwbGl0KFwiLlwiKS5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW1lVHlwZU1hcCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VicDogXCJpbWFnZS93ZWJwXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpwZzogXCJpbWFnZS9qcGVnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpwZWc6IFwiaW1hZ2UvanBlZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbmc6IFwiaW1hZ2UvcG5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlVHlwZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlTWFwW2ZpbGVFeHRlbnNpb25dIHx8IGNvbnRlbnRUeXBlIHx8IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG15QmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7IHR5cGU6IGZpbGVUeXBlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQobXlCbG9iKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm8gbm8gc2VydmVyLmxvYWQ6XCIsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcihcIkVycm8gYW8gY2FycmVnYXIgYSBpbWFnZW1cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHJlbW92ZTogKHNvdXJjZSwgbG9hZCwgZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHNvdXJjZS5zcGxpdChcIi9cIikucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qub3BlbihcIlBPU1RcIiwgYCR7dGhpcy5kZWxldGVVcmx9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZU5hbWUpfWApO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgcmVxdWVzdC5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdChmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcihgRXJybyBhbyByZW1vdmVyIG8gYXJxdWl2bzogJHtyZXF1ZXN0LnN0YXR1c1RleHR9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHkgPSBgYDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJybyBkZSByZWRlIGFvIHRlbnRhciByZW1vdmVyIG8gYXJxdWl2b1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJFcnJvIGRlIHJlZGUgYW8gdGVudGFyIHJlbW92ZXIgbyBhcnF1aXZvXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Quc2VuZChib2R5KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZXZlcnQ6ICh1bmlxdWVGaWxlSWQsIGxvYWQsIGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1bmlxdWVGaWxlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJOb21lIGRvIGFycXVpdm8gbsOjbyBmb3JuZWNpZG9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxVcmwgPSBgJHt0aGlzLmRlbGV0ZVVybH0ke2VuY29kZVVSSUNvbXBvbmVudCh1bmlxdWVGaWxlSWQpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vcGVuKFwiUE9TVFwiLCBmdWxsVXJsKTtcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA+PSAyMDAgJiYgcmVxdWVzdC5zdGF0dXMgPCAzMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh1bmlxdWVGaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoYEVycm8gYW8gcmV2ZXJ0ZXIgbyB1cGxvYWQ6ICR7cmVxdWVzdC5zdGF0dXNUZXh0fWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiBlcnJvcihcIkVycm8gZGUgcmVkZSBhbyB0ZW50YXIgcmV2ZXJ0ZXIgbyB1cGxvYWRcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZW5kKFwiXCIpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFudFVwbG9hZCkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGxvYWRGaWxlcygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEZpbGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9uZEZpbGVzID0gdGhpcy5pbml0aWFsRmlsZXMubWFwKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiBpdGVtLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsb2NhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbnRVcGxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUVycm9yKCkge1xyXG4gICAgICAgIHRoaXMub25VcGxvYWRFcnJvci5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUluaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Jbml0LmVtaXQodGhpcy5wb25kRmlsZXMpO1xyXG5cclxuICAgICAgICB0aGlzLnBvbmQgPSBldmVudC5wb25kO1xyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVBZGRGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQWRkZWQuZW1pdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Tw7MgZnVuY2lvbmEgcXVhbmRvIG7Do28gdGVtIGFycXVpdm9zIGluaWNpYWlzXHJcbiAgICBwb25kSGFuZGxlQWxsRmlsZXNBZGRlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgZmlsZXNMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQucG9uZC5nZXRGaWxlcygpO1xyXG5cclxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlUG9uZEZpbGUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE5hbWUgPSBmaWxlLnNlcnZlcklkPy5yZXBsYWNlKC9bXCJcXFtcXF1dL2csIFwiXCIpO1xyXG4gICAgICAgICAgICBmaWxlc0xpc3QucHVzaChmb3JtYXR0ZWROYW1lKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkFsbEFkZGVkLmVtaXQoZmlsZXNMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwb25kSGFuZGxlQWN0aXZhdGVGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQWN0aXZhdGUuZW1pdChldmVudCk7XHJcbiAgICAgICAgdGhpcy5saWdodEJveCAmJiB0aGlzLm9wZW5MaWdodEJveChldmVudC5maWxlLmZpbGVuYW1lV2l0aG91dEV4dGVuc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZVVwZGF0ZShldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5maWxsQWxidW0oZXZlbnQuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVSZW1vdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGxldCBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGlmIChldmVudC5maWxlLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgZmlsZU5hbWUgPSBldmVudC5maWxlLnNlcnZlcklkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lID0gZXZlbnQuZmlsZS5zb3VyY2UuaW5jbHVkZXMoXCIvXCIpID8gZXZlbnQuZmlsZS5zb3VyY2Uuc3BsaXQoXCIvXCIpLnBvcCgpIDogZXZlbnQuZmlsZS5zb3VyY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uUmVtb3ZlLmVtaXQoZmlsZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVvcmRlckZpbGVzKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLmZpbGxBbGJ1bShldmVudC5pdGVtcywgdHJ1ZSk7XHJcbiAgICAgICAgbGV0IGl0ZW1zTGlzdCA9IGV2ZW50Lml0ZW1zLm1hcCgoaXRlbTogRmlsZVBvbmRGaWxlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnNlcnZlcklkLnJlcGxhY2UoL1tcIlxcW1xcXV0vZywgXCJcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5maWxlbmFtZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMub25SZU9yZGVyLmVtaXQoaXRlbXNMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICB3YXJuaW5nKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZXJyb3IuY29kZSA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25NYXhSZWFjaGVkLmVtaXQoXHJcbiAgICAgICAgICAgICAgICBgTGltaXRlIGRlIEFycXVpdm9zIGF0aW5naWRvLiBWb2PDqiBwb2RlIGluc2VyaXIgdW0gdG90YWwgZGUgJHt0aGlzLm1heEZpbGVzfSBhcnF1aXZvcy5gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9wZW5MaWdodEJveChmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5hbGJ1bVxyXG4gICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZS5jYXB0aW9uO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuaW5kZXhPZihmaWxlTmFtZSk7XHJcbiAgICAgICAgdGhpcy5fbGlnaHRib3gub3Blbih0aGlzLmFsYnVtLCBpbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZmlsbEFsYnVtKGZpbGVzOiBbXSwgcmVPcmRlcj86IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoICE9PSB0aGlzLmFsYnVtLmxlbmd0aCB8fCByZU9yZGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZUFsYnVtID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGU6IEZpbGVQb25kRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWxlVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWxlLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVVybCA9IGF3YWl0IHRoaXMucmVhZEZpbGVBc3luYyhmaWxlLnNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVVybCA9IGZpbGUuc291cmNlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM6IGZpbGVVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb246IGZpbGUuZmlsZW5hbWVXaXRob3V0RXh0ZW5zaW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHVtYjogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYWxidW0gPSBwcmVBbGJ1bTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVhZEZpbGVBc3luYyhmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVXJsID0gcmVhZGVyLnJlc3VsdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBkYXRhVXJsLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZpbGVVcmwpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwbG9hZEZpbGVzKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy5wb25kLmdldEZpbGVzKCk7XHJcbiAgICAgICAgZmlsZXMubGVuZ3RoID4gMCA/IHRoaXMucG9uZC5wcm9jZXNzRmlsZXMoKSA6IHRoaXMubm9GaWxlc0FkZGVkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Vycm9yTWVzc2FnZSgpIHtcclxuICAgICAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KHRoaXMuY29udHJvbE5hbWUpO1xyXG5cclxuICAgICAgICBpZiAoY29udHJvbD8uZXJyb3JzPy5yZXF1aXJlZCAmJiAoIXRoaXMucG9uZCB8fCB0aGlzLnBvbmQuZ2V0RmlsZXMoKS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIk9icmlnYXTDs3Jpb1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIGFwcC5jb21wb25lbnQuaHRtbCAtLT5cclxuPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCIgW2NsYXNzLnVwbG9hZC1pbnZhbGlkXT1cImlzRXJyb3JNZXNzYWdlKClcIj5cclxuICAgIDxmaWxlLXBvbmQgI215UG9uZCBuYW1lPSdVcGxvYWRGb3JtW2ltYWdlbV1bXScgW2NsYXNzLmZpbGUtcG9udC10cmFuc3BhcmVudF09XCJ0cmFuc3BhcmVudFwiIFtvcHRpb25zXT1cInBvbmRPcHRpb25zXCJcclxuICAgICAgICAob25pbml0KT1cInBvbmRIYW5kbGVJbml0KCRldmVudClcIiBbZmlsZXNdPVwicG9uZEZpbGVzXCIgKG9udXBkYXRlZmlsZXMpPVwicG9uZEhhbmRsZVVwZGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAob25hY3RpdmF0ZWZpbGUpPVwicG9uZEhhbmRsZUFjdGl2YXRlRmlsZSgkZXZlbnQpXCJcclxuICAgICAgICAob25yZW9yZGVyZmlsZXMpPVwib25SZW9yZGVyRmlsZXMoJGV2ZW50KVwiIChvbndhcm5pbmcpPVwid2FybmluZygkZXZlbnQpXCJcclxuICAgICAgICAob25wcm9jZXNzZmlsZXMpPVwicG9uZEhhbmRsZUFsbEZpbGVzQWRkZWQoJGV2ZW50KVwiIChvbnByb2Nlc3NmaWxlKT1cInBvbmRIYW5kbGVBZGRGaWxlKCRldmVudClcIlxyXG4gICAgICAgIChvbmVycm9yKT1cInBvbmRIYW5kbGVFcnJvcigpXCIgLz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC10b29sdGlwXCIgW2NsYXNzXT1cIid0b29sdGlwLScgKyBlcnJvclBvc2l0aW9uXCIgW2NsYXNzLnRvdWNoZWRdPVwiY29udHJvbD8udG91Y2hlZFwiXHJcbiAgICAgICAgKm5nSWY9XCJpc0Vycm9yTWVzc2FnZSgpXCI+XHJcbiAgICAgICAge3tpc0Vycm9yTWVzc2FnZSgpfX1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS11cGxvYWQtb3JkZXIvc3JjL2xpYi91aS11cGxvYWQtb3JkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWpELE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sc0JBQXNCO0lBcUMvQixZQUFvQixTQUFtQixFQUFVLElBQWdCO1FBQTdDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBNUJ4RCxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUV0QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGtCQUFhLEdBQVcsT0FBTyxDQUFDO1FBSWhDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDdEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUMvQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBU2xELG1EQUFtRDtRQUM1QyxjQUFTLEdBQTBCLEVBQUUsQ0FBQztRQUN0QyxVQUFLLEdBQWEsRUFBRSxDQUFDO1FBdVI1QixtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDO0lBalNrRSxDQUFDO0lBUXJFLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2YsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQzVCLFNBQVMsRUFDTCxtR0FBbUc7WUFDdkcsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixpQkFBaUIsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUM5QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2hDLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFVBQVUsRUFBRTs7Ozs7O3VCQU1EO1lBQ1gsNkJBQTZCLEVBQUUsT0FBTztZQUN0QyxlQUFlLEVBQUUsU0FBUztZQUMxQix5QkFBeUIsRUFBRSxNQUFNO1lBQ2pDLGtCQUFrQixFQUFFLE9BQU87WUFDM0IsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2pFLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJO3lCQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7d0JBQ3RCLGNBQWMsRUFBRSxJQUFJO3dCQUNwQixPQUFPLEVBQUUsUUFBUTtxQkFDcEIsQ0FBQzt5QkFDRCxTQUFTLENBQUM7d0JBQ1AsSUFBSSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7NEJBQ2pCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO2dDQUM3QyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDOzZCQUMvRDtpQ0FBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtnQ0FDOUMsSUFBSTtvQ0FDQSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO29DQUM1QixJQUFJLFFBQWdCLENBQUM7b0NBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3Q0FDaEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQ0FDMUI7eUNBQU0sSUFBSSxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTt3Q0FDdkQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQztxQ0FDL0M7eUNBQU07d0NBQ0gsS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7d0NBQ2hFLE9BQU87cUNBQ1Y7b0NBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lDQUNsQjtnQ0FBQyxPQUFPLENBQUMsRUFBRTtvQ0FDUixPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLENBQUMsQ0FBQyxDQUFDO29DQUM1RCxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztpQ0FDbkQ7NkJBQ0o7d0JBQ0wsQ0FBQzt3QkFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTs0QkFDWCxLQUFLLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUM1QyxDQUFDO3dCQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7NEJBQ1gsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUMxQixDQUFDO3FCQUNKLENBQUMsQ0FBQztvQkFDUCxPQUFPO3dCQUNILEtBQUssRUFBRSxHQUFHLEVBQUU7NEJBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUN0QixLQUFLLEVBQUUsQ0FBQzt3QkFDWixDQUFDO3FCQUNKLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO29CQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQzt5QkFDWCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTs0QkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs0QkFDM0QsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7NEJBQ25DLE9BQU87eUJBQ1Y7d0JBQ0QsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFOzRCQUNuQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQzs0QkFDekQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzs0QkFDOUMsTUFBTSxXQUFXLEdBQUc7Z0NBQ2hCLElBQUksRUFBRSxZQUFZO2dDQUNsQixHQUFHLEVBQUUsWUFBWTtnQ0FDakIsSUFBSSxFQUFFLFlBQVk7Z0NBQ2xCLEdBQUcsRUFBRSxXQUFXOzZCQUNuQixDQUFDOzRCQUNGLE1BQU0sUUFBUSxHQUNWLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLElBQUksMEJBQTBCLENBQUM7NEJBRTVFLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzs0QkFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNqQixDQUFDLENBQUMsQ0FBQztvQkFDUCxDQUFDLENBQUM7eUJBQ0QsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDM0MsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7b0JBQ3ZDLENBQUMsQ0FBQyxDQUFDO2dCQUNYLENBQUM7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDVCxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQzt3QkFDdkMsT0FBTztxQkFDVjtvQkFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUN6QyxJQUFJLEVBQUUsQ0FBQztvQkFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsQ0FBQztnQkFDRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNsQyxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUNmLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO3dCQUN2QyxPQUFPO3FCQUNWO29CQUNELElBQUksRUFBRSxDQUFDO29CQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO2FBQ0o7U0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDdkY7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQ3BELE9BQU87b0JBQ0gsTUFBTSxFQUFFLElBQUk7b0JBQ1osT0FBTyxFQUFFO3dCQUNMLElBQUksRUFBRSxPQUFPO3FCQUNoQjtpQkFDSixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsdUJBQXVCLENBQUMsS0FBVTtRQUM5QixNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBa0IsRUFBRSxFQUFFO1lBQ2pDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN2QixJQUFJLFFBQWdCLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sWUFBWSxJQUFJLEVBQUU7WUFDbkMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDO2FBQU07WUFDSCxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3ZHO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVksSUFBSSxFQUFFO2dCQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNoRDtpQkFBTTtnQkFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNkLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNsQiw4REFBOEQsSUFBSSxDQUFDLFFBQVEsWUFBWSxDQUMxRixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ2pCLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDWixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDckIsQ0FBQyxDQUFDO2FBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBUyxFQUFFLE9BQWlCO1FBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFrQixFQUFFLEVBQUU7Z0JBQ25DLElBQUksT0FBZSxDQUFDO2dCQUVwQixJQUFJLElBQUksQ0FBQyxNQUFNLFlBQVksSUFBSSxFQUFFO29CQUM3QixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkQ7cUJBQU07b0JBQ0gsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3BDO2dCQUVELE9BQU87b0JBQ0gsR0FBRyxFQUFFLE9BQU87b0JBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0I7b0JBQ3RDLEtBQUssRUFBRSxFQUFFO2lCQUNaLENBQUM7WUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO1lBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVU7UUFDcEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUzQixJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hGLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQy9DLENBQUM7O29IQWhVUSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5NkJDYm5DLDZqREE2QkE7NEZEaEJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDSSxpQkFBaUI7d0hBS2xCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRWMsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNNLGVBQWU7c0JBQXZDLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGaWxlUG9uZENvbXBvbmVudCB9IGZyb20gXCJuZ3gtZmlsZXBvbmRcIjtcclxuaW1wb3J0IHsgRmlsZVBvbmQsIEZpbGVQb25kRmlsZSwgRmlsZVBvbmRJbml0aWFsRmlsZSwgRmlsZVBvbmRPcHRpb25zIH0gZnJvbSBcImZpbGVwb25kXCI7XHJcbmltcG9ydCB7IElBbGJ1bSwgTGlnaHRib3ggfSBmcm9tIFwibmd4LWxpZ2h0Ym94XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJ1aS11cGxvYWQtb3JkZXJcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vdWktdXBsb2FkLW9yZGVyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlVcGxvYWRPcmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgdXBsb2FkT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICAgIHByaXZhdGUgZXZlbnRzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBpbml0aWFsRmlsZXM6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcmVvcmRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyID0gMTA7XHJcbiAgICBASW5wdXQoKSB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxpZ2h0Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGluc3RhbnRVcGxvYWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZXJyb3JQb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0JztcclxuXHJcbiAgICAvLyBDb20gbXVsdGlwbGU9ZmFsc2UgZSB1bWEgaW1hZ2VtIGrDoSBzYWx2YSwgbW9zdHJhIG8gcHJldmlldyBubyBsdWdhciBkYSDDoXJlYSBkZSB1cGxvYWQuXHJcbiAgICBASW5wdXQoKSBwcmV2aWV3VXJsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjaXJjbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25QcmV2aWV3UmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG9uQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkFsbEFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkFjdGl2YXRlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZEZpbGU+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlUG9uZE9wdGlvbnNbXCJmaWxlc1wiXT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbk1heFJlYWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlT3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb25kRmlsZVtdPigpO1xyXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBub0ZpbGVzQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblVwbG9hZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZChcIm15UG9uZFwiKSBteVBvbmQ6IEZpbGVQb25kQ29tcG9uZW50O1xyXG4gICAgQENvbnRlbnRDaGlsZChcInByZXZpZXdcIikgcHJldmlld1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xpZ2h0Ym94OiBMaWdodGJveCwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICAgIHB1YmxpYyBwb25kOiBGaWxlUG9uZDtcclxuICAgIHB1YmxpYyBwb25kT3B0aW9uczogRmlsZVBvbmRPcHRpb25zO1xyXG4gICAgLy8gcHVibGljIHBvbmRGaWxlczogRmlsZVBvbmRPcHRpb25zW1wiZmlsZXNcIl0gPSBbXTtcclxuICAgIHB1YmxpYyBwb25kRmlsZXM6IEZpbGVQb25kSW5pdGlhbEZpbGVbXSA9IFtdO1xyXG4gICAgcHVibGljIGFsYnVtOiBJQWxidW1bXSA9IFtdO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucG9uZE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IHRoaXMubXVsdGlwbGUsXHJcbiAgICAgICAgICAgIGxhYmVsSWRsZTpcclxuICAgICAgICAgICAgICAgICdBcnJhc3RlIHNldXMgYXJxdWl2b3Mgb3UgPHNwYW4gY2xhc3M9XCJmaWxlcG9uZC0tbGFiZWwtYWN0aW9uXCI+Y2xpcXVlIGFxdWk8L3NwYW4+IHBhcmEgc2VsZWNpb25hci4nLFxyXG4gICAgICAgICAgICBhbGxvd1Jlb3JkZXI6IHRoaXMucmVvcmRlcixcclxuICAgICAgICAgICAgbWF4RmlsZXM6IHRoaXMubWF4RmlsZXMsXHJcbiAgICAgICAgICAgIGFjY2VwdGVkRmlsZVR5cGVzOiBbXCJpbWFnZS8qXCJdLFxyXG4gICAgICAgICAgICBpbnN0YW50VXBsb2FkOiB0aGlzLmluc3RhbnRVcGxvYWQsXHJcbiAgICAgICAgICAgIGFsbG93UHJvY2VzczogdGhpcy5pbnN0YW50VXBsb2FkLFxyXG4gICAgICAgICAgICBkcm9wVmFsaWRhdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgaWNvblJlbW92ZTogYDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNSAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICA8bWFzayBpZD1cIm1hc2swXzM3MDY3XzM0MTQ2XCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjAuMTMwODU5XCIgeT1cIjAuNjMxNTkyXCIgd2lkdGg9XCIxNC43MzY4XCIgaGVpZ2h0PVwiMTQuNzM2OFwiIGZpbGw9XCIjRDlEOUQ5XCIvPlxyXG4gICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgIDxnIG1hc2s9XCJ1cmwoI21hc2swXzM3MDY3XzM0MTQ2KVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTQuNDMgMTMuNTI2M0M0LjA5MjI4IDEzLjUyNjMgMy44MDMxNyAxMy40MDYgMy41NjI2NyAxMy4xNjU1QzMuMzIyMTcgMTIuOTI1IDMuMjAxOTMgMTIuNjM1OSAzLjIwMTkzIDEyLjI5ODJWNC4zMTU3NEMzLjAyNzk1IDQuMzE1NzQgMi44ODIxMiA0LjI1Njg5IDIuNzY0NDMgNC4xMzkyQzIuNjQ2NzQgNC4wMjE1MSAyLjU4Nzg5IDMuODc1NjggMi41ODc4OSAzLjcwMTdDMi41ODc4OSAzLjUyNzczIDIuNjQ2NzQgMy4zODE4OSAyLjc2NDQzIDMuMjY0MkMyLjg4MjEyIDMuMTQ2NTEgMy4wMjc5NSAzLjA4NzY3IDMuMjAxOTMgMy4wODc2N0g1LjY1ODA3QzUuNjU4MDcgMi45MTM2OSA1LjcxNjkxIDIuNzY3ODYgNS44MzQ2IDIuNjUwMTdDNS45NTIyOSAyLjUzMjQ4IDYuMDk4MTIgMi40NzM2MyA2LjI3MjEgMi40NzM2M0g4LjcyODI0QzguOTAyMjIgMi40NzM2MyA5LjA0ODA1IDIuNTMyNDggOS4xNjU3NCAyLjY1MDE3QzkuMjgzNDMgMi43Njc4NiA5LjM0MjI4IDIuOTEzNjkgOS4zNDIyOCAzLjA4NzY3SDExLjc5ODRDMTEuOTcyNCAzLjA4NzY3IDEyLjExODIgMy4xNDY1MSAxMi4yMzU5IDMuMjY0MkMxMi4zNTM2IDMuMzgxODkgMTIuNDEyNSAzLjUyNzczIDEyLjQxMjUgMy43MDE3QzEyLjQxMjUgMy44NzU2OCAxMi4zNTM2IDQuMDIxNTEgMTIuMjM1OSA0LjEzOTJDMTIuMTE4MiA0LjI1Njg5IDExLjk3MjQgNC4zMTU3NCAxMS43OTg0IDQuMzE1NzRWMTIuMjk4MkMxMS43OTg0IDEyLjYzNTkgMTEuNjc4MiAxMi45MjUgMTEuNDM3NyAxMy4xNjU1QzExLjE5NzIgMTMuNDA2IDEwLjkwODEgMTMuNTI2MyAxMC41NzAzIDEzLjUyNjNINC40M1pNNC40MyA0LjMxNTc0VjEyLjI5ODJIMTAuNTcwM1Y0LjMxNTc0SDQuNDNaTTcuNTAwMTcgOS4xNjY2Mkw4LjY2Njg0IDEwLjMzMzNDOC43ODk2NSAxMC40NDU5IDguOTM1NDggMTAuNTAyMSA5LjEwNDM0IDEwLjUwMjFDOS4yNzMyIDEwLjUwMjEgOS40MTM5MSAxMC40NDU5IDkuNTI2NDkgMTAuMzMzM0M5LjY0OTI5IDEwLjIxMDUgOS43MTA3IDEwLjA2NDYgOS43MTA3IDkuODk1NzhDOS43MTA3IDkuNzI2OTIgOS42NDkyOSA5LjU4NjIxIDkuNTI2NDkgOS40NzM2M0w4LjM1OTgyIDguMzA2OTdMOS41MjY0OSA3LjE0MDNDOS42NDkyOSA3LjAxNzQ5IDkuNzEwNyA2Ljg3MTY2IDkuNzEwNyA2LjcwMjhDOS43MTA3IDYuNTMzOTQgOS42NDkyOSA2LjM5MzIyIDkuNTI2NDkgNi4yODA2NUM5LjQxMzkxIDYuMTU3ODQgOS4yNzMyIDYuMDk2NDQgOS4xMDQzNCA2LjA5NjQ0QzguOTM1NDggNi4wOTY0NCA4Ljc4OTY1IDYuMTU3ODQgOC42NjY4NCA2LjI4MDY1TDcuNTAwMTcgNy40NDczMkw2LjMzMzUgNi4yODA2NUM2LjIyMDkzIDYuMTU3ODQgNi4wODAyMiA2LjA5NjQ0IDUuOTExMzYgNi4wOTY0NEM1Ljc0MjUgNi4wOTY0NCA1LjU5NjY2IDYuMTU3ODQgNS40NzM4NiA2LjI4MDY1QzUuMzYxMjggNi4zOTMyMiA1LjMwNSA2LjUzMzk0IDUuMzA1IDYuNzAyOEM1LjMwNSA2Ljg3MTY2IDUuMzYxMjggNy4wMTc0OSA1LjQ3Mzg2IDcuMTQwM0w2LjY0MDUyIDguMzA2OTdMNS40NzM4NiA5LjQ3MzYzQzUuMzYxMjggOS41ODYyMSA1LjMwNSA5LjcyNjkyIDUuMzA1IDkuODk1NzhDNS4zMDUgMTAuMDY0NiA1LjM2MTI4IDEwLjIxMDUgNS40NzM4NiAxMC4zMzMzQzUuNTk2NjYgMTAuNDQ1OSA1Ljc0MjUgMTAuNTAyMSA1LjkxMTM2IDEwLjUwMjFDNi4wODAyMiAxMC41MDIxIDYuMjIwOTMgMTAuNDQ1OSA2LjMzMzUgMTAuMzMzM0w3LjUwMDE3IDkuMTY2NjJaXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICA8L2c+PC9zdmc+YCxcclxuICAgICAgICAgICAgc3R5bGVCdXR0b25SZW1vdmVJdGVtUG9zaXRpb246IFwicmlnaHRcIixcclxuICAgICAgICAgICAgaW1hZ2VSZXNpemVNb2RlOiBcImNvbnRhaW5cIixcclxuICAgICAgICAgICAgc3R5bGVJdGVtUGFuZWxBc3BlY3RSYXRpbzogXCIwLjc1XCIsXHJcbiAgICAgICAgICAgIGl0ZW1JbnNlcnRMb2NhdGlvbjogXCJhZnRlclwiLFxyXG4gICAgICAgICAgICBjcmVkaXRzOiBmYWxzZSxcclxuICAgICAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzOiAoZmllbGROYW1lLCBmaWxlLCBtZXRhZGF0YSwgbG9hZCwgZXJyb3IsIHByb2dyZXNzLCBhYm9ydCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZpZWxkTmFtZSwgZmlsZSwgZmlsZS5uYW1lKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucG9zdCh0aGlzLnVybCwgZm9ybURhdGEsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogXCJldmVudHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0OiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzKGV2ZW50Lmxlbmd0aENvbXB1dGFibGUsIGV2ZW50LmxvYWRlZCwgZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBldmVudC5ib2R5O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNlcnZlcklkOiBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZSkgJiYgcmVzcG9uc2UubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcklkID0gcmVzcG9uc2VbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlICYmIChyZXNwb25zZS5zZXJ2ZXJJZCB8fCByZXNwb25zZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJJZCA9IHJlc3BvbnNlLnNlcnZlcklkIHx8IHJlc3BvbnNlLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcihcIlJlc3Bvc3RhIGRvIHNlcnZpZG9yIGludsOhbGlkYTogc2VydmVySWQgbsOjbyBlbmNvbnRyYWRvXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQoc2VydmVySWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJybyBhbyBwcm9jZXNzYXIgcmVzcG9zdGEgZG8gc2Vydmlkb3I6XCIsIGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJFcnJvIGFvIHByb2Nlc3NhciByZXNwb3N0YSBkbyBzZXJ2aWRvclwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKFwiRXJybyBubyB1cGxvYWQ6IFwiICsgZXJyLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBsb2FkOiAoc291cmNlLCBsb2FkLCBlcnJvciwgcHJvZ3Jlc3MsIGFib3J0LCBoZWFkZXJzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbXlSZXF1ZXN0ID0gbmV3IFJlcXVlc3Qoc291cmNlKTtcclxuICAgICAgICAgICAgICAgICAgICBmZXRjaChteVJlcXVlc3QpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvIGFvIGNhcnJlZ2FyIGltYWdlbTpcIiwgcmVzcG9uc2Uuc3RhdHVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcihcIkVycm8gYW8gY2FycmVnYXIgYSBpbWFnZW1cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKS50aGVuKChidWZmZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBzb3VyY2Uuc3BsaXQoXCIuXCIpLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbWVUeXBlTWFwID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJwOiBcImltYWdlL3dlYnBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganBnOiBcImltYWdlL2pwZWdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganBlZzogXCJpbWFnZS9qcGVnXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBuZzogXCJpbWFnZS9wbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVUeXBlID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWltZVR5cGVNYXBbZmlsZUV4dGVuc2lvbl0gfHwgY29udGVudFR5cGUgfHwgXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbXlCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHsgdHlwZTogZmlsZVR5cGUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZChteUJsb2IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJybyBubyBzZXJ2ZXIubG9hZDpcIiwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKFwiRXJybyBhbyBjYXJyZWdhciBhIGltYWdlbVwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcmVtb3ZlOiAoc291cmNlLCBsb2FkLCBlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghc291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKFwiTm9tZSBkbyBhcnF1aXZvIG7Do28gZm9ybmVjaWRvXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gc291cmNlLnNwbGl0KFwiL1wiKS5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBsb2FkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICByZXZlcnQ6ICh1bmlxdWVGaWxlSWQsIGxvYWQsIGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1bmlxdWVGaWxlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoXCJOb21lIGRvIGFycXVpdm8gbsOjbyBmb3JuZWNpZG9cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh1bmlxdWVGaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFudFVwbG9hZCkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IHRoaXMudXBsb2FkT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGxvYWRGaWxlcygpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbEZpbGVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9uZEZpbGVzID0gdGhpcy5pbml0aWFsRmlsZXMubWFwKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlOiBpdGVtLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsb2NhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbnRVcGxvYWQpIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUVycm9yKCkge1xyXG4gICAgICAgIHRoaXMub25VcGxvYWRFcnJvci5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZUluaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMub25Jbml0LmVtaXQodGhpcy5wb25kRmlsZXMpO1xyXG5cclxuICAgICAgICB0aGlzLnBvbmQgPSBldmVudC5wb25kO1xyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVBZGRGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQWRkZWQuZW1pdChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9Tw7MgZnVuY2lvbmEgcXVhbmRvIG7Do28gdGVtIGFycXVpdm9zIGluaWNpYWlzXHJcbiAgICBwb25kSGFuZGxlQWxsRmlsZXNBZGRlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgZmlsZXNMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQucG9uZC5nZXRGaWxlcygpO1xyXG5cclxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlOiBGaWxlUG9uZEZpbGUpID0+IHtcclxuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE5hbWUgPSBmaWxlLnNlcnZlcklkPy5yZXBsYWNlKC9bXCJcXFtcXF1dL2csIFwiXCIpO1xyXG4gICAgICAgICAgICBmaWxlc0xpc3QucHVzaChmb3JtYXR0ZWROYW1lKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vbkFsbEFkZGVkLmVtaXQoZmlsZXNMaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwb25kSGFuZGxlQWN0aXZhdGVGaWxlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uQWN0aXZhdGUuZW1pdChldmVudCk7XHJcbiAgICAgICAgdGhpcy5saWdodEJveCAmJiB0aGlzLm9wZW5MaWdodEJveChldmVudC5maWxlLmZpbGVuYW1lV2l0aG91dEV4dGVuc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcG9uZEhhbmRsZVVwZGF0ZShldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5maWxsQWxidW0oZXZlbnQuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHBvbmRIYW5kbGVSZW1vdmUoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGxldCBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGlmIChldmVudC5maWxlLnNvdXJjZSBpbnN0YW5jZW9mIEZpbGUpIHtcclxuICAgICAgICAgICAgZmlsZU5hbWUgPSBldmVudC5maWxlLnNlcnZlcklkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVOYW1lID0gZXZlbnQuZmlsZS5zb3VyY2UuaW5jbHVkZXMoXCIvXCIpID8gZXZlbnQuZmlsZS5zb3VyY2Uuc3BsaXQoXCIvXCIpLnBvcCgpIDogZXZlbnQuZmlsZS5zb3VyY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25SZW1vdmUuZW1pdChmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25SZW9yZGVyRmlsZXMoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsbEFsYnVtKGV2ZW50Lml0ZW1zLCB0cnVlKTtcclxuICAgICAgICBsZXQgaXRlbXNMaXN0ID0gZXZlbnQuaXRlbXMubWFwKChpdGVtOiBGaWxlUG9uZEZpbGUpID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0uc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uc2VydmVySWQucmVwbGFjZSgvW1wiXFxbXFxdXS9nLCBcIlwiKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmZpbGVuYW1lO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5vblJlT3JkZXIuZW1pdChpdGVtc0xpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIHdhcm5pbmcoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmIChldmVudC5lcnJvci5jb2RlID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vbk1heFJlYWNoZWQuZW1pdChcclxuICAgICAgICAgICAgICAgIGBMaW1pdGUgZGUgQXJxdWl2b3MgYXRpbmdpZG8uIFZvY8OqIHBvZGUgaW5zZXJpciB1bSB0b3RhbCBkZSAke3RoaXMubWF4RmlsZXN9IGFycXVpdm9zLmBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkxpZ2h0Qm94KGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmFsYnVtXHJcbiAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlLmNhcHRpb247XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5pbmRleE9mKGZpbGVOYW1lKTtcclxuICAgICAgICB0aGlzLl9saWdodGJveC5vcGVuKHRoaXMuYWxidW0sIGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmaWxsQWxidW0oZmlsZXM6IFtdLCByZU9yZGVyPzogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggIT09IHRoaXMuYWxidW0ubGVuZ3RoIHx8IHJlT3JkZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJlQWxidW0gPSBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgICAgIGZpbGVzLm1hcChhc3luYyAoZmlsZTogRmlsZVBvbmRGaWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVVcmw6IHN0cmluZztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUuc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlVXJsID0gYXdhaXQgdGhpcy5yZWFkRmlsZUFzeW5jKGZpbGUuc291cmNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlVXJsID0gZmlsZS5zb3VyY2UudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogZmlsZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbjogZmlsZS5maWxlbmFtZVdpdGhvdXRFeHRlbnNpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRodW1iOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hbGJ1bSA9IHByZUFsYnVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWFkRmlsZUFzeW5jKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFVcmwgPSByZWFkZXIucmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGRhdGFVcmwudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsZVVybCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBsb2FkRmlsZXMoKSB7XHJcbiAgICAgICAgY29uc3QgZmlsZXMgPSB0aGlzLnBvbmQuZ2V0RmlsZXMoKTtcclxuICAgICAgICBmaWxlcy5sZW5ndGggPiAwID8gdGhpcy5wb25kLnByb2Nlc3NGaWxlcygpIDogdGhpcy5ub0ZpbGVzQWRkZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjb250cm9sKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0/LmdldCh0aGlzLmNvbnRyb2xOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Vycm9yTWVzc2FnZSgpIHtcclxuICAgICAgICBsZXQgY29udHJvbCA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICAgICAgaWYgKGNvbnRyb2w/LmVycm9ycz8ucmVxdWlyZWQgJiYgKCF0aGlzLnBvbmQgfHwgdGhpcy5wb25kLmdldEZpbGVzKCkubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJPYnJpZ2F0w7NyaW9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaXNQcmV2aWV3VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMubXVsdGlwbGUgJiYgISF0aGlzLnByZXZpZXdVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlclByZXZpZXcgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgdGhpcy5vblByZXZpZXdSZW1vdmUuZW1pdCgpO1xyXG4gICAgfTtcclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaXNQcmV2aWV3VmlzaWJsZSgpOyBlbHNlIHVwbG9hZGVyXCIgY2xhc3M9XCJ1cGxvYWQtcHJldmlld1wiIFtjbGFzcy51cGxvYWQtcHJldmlldy1jaXJjbGVdPVwiY2lyY2xlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZXZpZXdUZW1wbGF0ZTsgZWxzZSBwcmV2aWV3UGFkcmFvXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJldmlld1RlbXBsYXRlXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBwcmV2aWV3VXJsLCByZW1vdmVyOiByZW1vdmVyUHJldmlldyB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3ByZXZpZXdQYWRyYW8+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ1cGxvYWQtcHJldmlldy1pbWFnZW1cIiBbc3JjXT1cInByZXZpZXdVcmxcIiBhbHQ9XCJcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiB1cGxvYWQtcHJldmlldy1yZW1vdmVyXCIgKGNsaWNrKT1cInJlbW92ZXJQcmV2aWV3KClcIj5cbiAgICAgICAgICAgIDx1aS1pY29uIGljb249XCJkZWxldGVfZm9yZXZlclwiPjwvdWktaWNvbj5SZW1vdmVyIGltYWdlbVxuICAgICAgICA8L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3VwbG9hZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIFtjbGFzcy51cGxvYWQtaW52YWxpZF09XCJpc0Vycm9yTWVzc2FnZSgpXCI+XG4gICAgICAgIDxmaWxlLXBvbmQgI215UG9uZCBuYW1lPSdVcGxvYWRGb3JtW2ltYWdlbV1bXScgW2NsYXNzLmZpbGUtcG9udC10cmFuc3BhcmVudF09XCJ0cmFuc3BhcmVudFwiIFtvcHRpb25zXT1cInBvbmRPcHRpb25zXCJcbiAgICAgICAgICAgIChvbmluaXQpPVwicG9uZEhhbmRsZUluaXQoJGV2ZW50KVwiIFtmaWxlc109XCJwb25kRmlsZXNcIiAob251cGRhdGVmaWxlcyk9XCJwb25kSGFuZGxlVXBkYXRlKCRldmVudClcIlxuICAgICAgICAgICAgKG9uYWN0aXZhdGVmaWxlKT1cInBvbmRIYW5kbGVBY3RpdmF0ZUZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25yZW9yZGVyZmlsZXMpPVwib25SZW9yZGVyRmlsZXMoJGV2ZW50KVwiIChvbndhcm5pbmcpPVwid2FybmluZygkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbnByb2Nlc3NmaWxlcyk9XCJwb25kSGFuZGxlQWxsRmlsZXNBZGRlZCgkZXZlbnQpXCIgKG9ucHJvY2Vzc2ZpbGUpPVwicG9uZEhhbmRsZUFkZEZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25lcnJvcik9XCJwb25kSGFuZGxlRXJyb3IoKVwiLz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC10b29sdGlwXCIgW2NsYXNzXT1cIid0b29sdGlwLScgKyBlcnJvclBvc2l0aW9uXCIgW2NsYXNzLnRvdWNoZWRdPVwiY29udHJvbD8udG91Y2hlZFwiXG4gICAgICAgICAgICAqbmdJZj1cImlzRXJyb3JNZXNzYWdlKClcIj5cbiAgICAgICAgICAgIHt7aXNFcnJvck1lc3NhZ2UoKX19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
2
2
  import { UiUploadOrderComponent } from './ui-upload-order.component';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { LightboxModule } from 'ngx-lightbox';
5
+ import { UiIconModule } from 'uitec-ng-icon';
5
6
  // import filepond module
6
7
  import { FilePondModule, registerPlugin } from "ngx-filepond";
7
8
  // import and register filepond plugins
@@ -18,10 +19,12 @@ export class UiUploadOrderModule {
18
19
  UiUploadOrderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
20
  UiUploadOrderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderModule, declarations: [UiUploadOrderComponent], imports: [CommonModule,
20
21
  FilePondModule,
21
- LightboxModule], exports: [UiUploadOrderComponent] });
22
+ LightboxModule,
23
+ UiIconModule], exports: [UiUploadOrderComponent] });
22
24
  UiUploadOrderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderModule, imports: [CommonModule,
23
25
  FilePondModule,
24
- LightboxModule] });
26
+ LightboxModule,
27
+ UiIconModule] });
25
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UiUploadOrderModule, decorators: [{
26
29
  type: NgModule,
27
30
  args: [{
@@ -31,11 +34,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
31
34
  imports: [
32
35
  CommonModule,
33
36
  FilePondModule,
34
- LightboxModule
37
+ LightboxModule,
38
+ UiIconModule
35
39
  ],
36
40
  exports: [
37
41
  UiUploadOrderComponent
38
42
  ]
39
43
  }]
40
44
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5Qyx5QkFBeUI7QUFDekIsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUQsdUNBQXVDO0FBQ3ZDLE9BQU8sOEJBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTywwQkFBMEIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RSxPQUFPLGtDQUFrQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hGLE9BQU8sOEJBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDaEYsT0FBTyx1QkFBdUIsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLHlCQUF5QixNQUFNLDhCQUE4QixDQUFDOztBQUVyRSxjQUFjLENBQ1YsOEJBQThCLEVBQzlCLDBCQUEwQixFQUMxQixrQ0FBa0MsRUFDbEMsOEJBQThCLEVBQzlCLHVCQUF1QixFQUN2Qix5QkFBeUIsQ0FDNUIsQ0FBQztBQWVGLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFYeEIsc0JBQXNCLGFBR3RCLFlBQVk7UUFDWixjQUFjO1FBQ2QsY0FBYyxhQUdkLHNCQUFzQjtrSEFHakIsbUJBQW1CLFlBUnhCLFlBQVk7UUFDWixjQUFjO1FBQ2QsY0FBYzs0RkFNVCxtQkFBbUI7a0JBYi9CLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHNCQUFzQjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsc0JBQXNCO3FCQUN6QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpVXBsb2FkT3JkZXJDb21wb25lbnQgfSBmcm9tICcuL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBMaWdodGJveE1vZHVsZSB9IGZyb20gJ25neC1saWdodGJveCc7XHJcblxyXG4vLyBpbXBvcnQgZmlsZXBvbmQgbW9kdWxlXHJcbmltcG9ydCB7IEZpbGVQb25kTW9kdWxlLCByZWdpc3RlclBsdWdpbiB9IGZyb20gXCJuZ3gtZmlsZXBvbmRcIjtcclxuXHJcbi8vIGltcG9ydCBhbmQgcmVnaXN0ZXIgZmlsZXBvbmQgcGx1Z2luc1xyXG5pbXBvcnQgRmlsZVBvbmRQbHVnaW5GaWxlVmFsaWRhdGVUeXBlIGZyb20gXCJmaWxlcG9uZC1wbHVnaW4tZmlsZS12YWxpZGF0ZS10eXBlXCI7XHJcbmltcG9ydCBGaWxlUG9uZFBsdWdpbkltYWdlUHJldmlldyBmcm9tICdmaWxlcG9uZC1wbHVnaW4taW1hZ2UtcHJldmlldyc7XHJcbmltcG9ydCBGaWxlUG9uZFBsdWdpbkltYWdlRXhpZk9yaWVudGF0aW9uIGZyb20gJ2ZpbGVwb25kLXBsdWdpbi1pbWFnZS1leGlmLW9yaWVudGF0aW9uJztcclxuaW1wb3J0IEZpbGVQb25kUGx1Z2luRmlsZVZhbGlkYXRlU2l6ZSBmcm9tICdmaWxlcG9uZC1wbHVnaW4tZmlsZS12YWxpZGF0ZS1zaXplJztcclxuaW1wb3J0IEZpbGVQb25kUGx1Z2luSW1hZ2VDcm9wIGZyb20gJ2ZpbGVwb25kLXBsdWdpbi1pbWFnZS1jcm9wJztcclxuaW1wb3J0IEZpbGVQb25kUGx1Z2luSW1hZ2VSZXNpemUgZnJvbSAnZmlsZXBvbmQtcGx1Z2luLWltYWdlLXJlc2l6ZSc7XHJcblxyXG5yZWdpc3RlclBsdWdpbihcclxuICAgIEZpbGVQb25kUGx1Z2luRmlsZVZhbGlkYXRlVHlwZSxcclxuICAgIEZpbGVQb25kUGx1Z2luSW1hZ2VQcmV2aWV3LFxyXG4gICAgRmlsZVBvbmRQbHVnaW5JbWFnZUV4aWZPcmllbnRhdGlvbixcclxuICAgIEZpbGVQb25kUGx1Z2luRmlsZVZhbGlkYXRlU2l6ZSxcclxuICAgIEZpbGVQb25kUGx1Z2luSW1hZ2VDcm9wLFxyXG4gICAgRmlsZVBvbmRQbHVnaW5JbWFnZVJlc2l6ZVxyXG4pO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFVpVXBsb2FkT3JkZXJDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZpbGVQb25kTW9kdWxlLFxyXG4gICAgICAgIExpZ2h0Ym94TW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFVpVXBsb2FkT3JkZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVpVXBsb2FkT3JkZXJNb2R1bGUgeyB9XHJcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdXBsb2FkLW9yZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXVwbG9hZC1vcmRlci9zcmMvbGliL3VpLXVwbG9hZC1vcmRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLHlCQUF5QjtBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RCx1Q0FBdUM7QUFDdkMsT0FBTyw4QkFBOEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLDBCQUEwQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZFLE9BQU8sa0NBQWtDLE1BQU0sd0NBQXdDLENBQUM7QUFDeEYsT0FBTyw4QkFBOEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLHVCQUF1QixNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8seUJBQXlCLE1BQU0sOEJBQThCLENBQUM7O0FBRXJFLGNBQWMsQ0FDViw4QkFBOEIsRUFDOUIsMEJBQTBCLEVBQzFCLGtDQUFrQyxFQUNsQyw4QkFBOEIsRUFDOUIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixDQUM1QixDQUFDO0FBZ0JGLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFaeEIsc0JBQXNCLGFBR3RCLFlBQVk7UUFDWixjQUFjO1FBQ2QsY0FBYztRQUNkLFlBQVksYUFHWixzQkFBc0I7a0hBR2pCLG1CQUFtQixZQVR4QixZQUFZO1FBQ1osY0FBYztRQUNkLGNBQWM7UUFDZCxZQUFZOzRGQU1QLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysc0JBQXNCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsc0JBQXNCO3FCQUN6QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpVXBsb2FkT3JkZXJDb21wb25lbnQgfSBmcm9tICcuL3VpLXVwbG9hZC1vcmRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBMaWdodGJveE1vZHVsZSB9IGZyb20gJ25neC1saWdodGJveCc7XHJcbmltcG9ydCB7IFVpSWNvbk1vZHVsZSB9IGZyb20gJ3VpdGVjLW5nLWljb24nO1xyXG5cclxuLy8gaW1wb3J0IGZpbGVwb25kIG1vZHVsZVxyXG5pbXBvcnQgeyBGaWxlUG9uZE1vZHVsZSwgcmVnaXN0ZXJQbHVnaW4gfSBmcm9tIFwibmd4LWZpbGVwb25kXCI7XHJcblxyXG4vLyBpbXBvcnQgYW5kIHJlZ2lzdGVyIGZpbGVwb25kIHBsdWdpbnNcclxuaW1wb3J0IEZpbGVQb25kUGx1Z2luRmlsZVZhbGlkYXRlVHlwZSBmcm9tIFwiZmlsZXBvbmQtcGx1Z2luLWZpbGUtdmFsaWRhdGUtdHlwZVwiO1xyXG5pbXBvcnQgRmlsZVBvbmRQbHVnaW5JbWFnZVByZXZpZXcgZnJvbSAnZmlsZXBvbmQtcGx1Z2luLWltYWdlLXByZXZpZXcnO1xyXG5pbXBvcnQgRmlsZVBvbmRQbHVnaW5JbWFnZUV4aWZPcmllbnRhdGlvbiBmcm9tICdmaWxlcG9uZC1wbHVnaW4taW1hZ2UtZXhpZi1vcmllbnRhdGlvbic7XHJcbmltcG9ydCBGaWxlUG9uZFBsdWdpbkZpbGVWYWxpZGF0ZVNpemUgZnJvbSAnZmlsZXBvbmQtcGx1Z2luLWZpbGUtdmFsaWRhdGUtc2l6ZSc7XHJcbmltcG9ydCBGaWxlUG9uZFBsdWdpbkltYWdlQ3JvcCBmcm9tICdmaWxlcG9uZC1wbHVnaW4taW1hZ2UtY3JvcCc7XHJcbmltcG9ydCBGaWxlUG9uZFBsdWdpbkltYWdlUmVzaXplIGZyb20gJ2ZpbGVwb25kLXBsdWdpbi1pbWFnZS1yZXNpemUnO1xyXG5cclxucmVnaXN0ZXJQbHVnaW4oXHJcbiAgICBGaWxlUG9uZFBsdWdpbkZpbGVWYWxpZGF0ZVR5cGUsXHJcbiAgICBGaWxlUG9uZFBsdWdpbkltYWdlUHJldmlldyxcclxuICAgIEZpbGVQb25kUGx1Z2luSW1hZ2VFeGlmT3JpZW50YXRpb24sXHJcbiAgICBGaWxlUG9uZFBsdWdpbkZpbGVWYWxpZGF0ZVNpemUsXHJcbiAgICBGaWxlUG9uZFBsdWdpbkltYWdlQ3JvcCxcclxuICAgIEZpbGVQb25kUGx1Z2luSW1hZ2VSZXNpemVcclxuKTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBVaVVwbG9hZE9yZGVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGaWxlUG9uZE1vZHVsZSxcclxuICAgICAgICBMaWdodGJveE1vZHVsZSxcclxuICAgICAgICBVaUljb25Nb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgVWlVcGxvYWRPcmRlckNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlVcGxvYWRPcmRlck1vZHVsZSB7IH1cclxuIl19