tango-app-ui-store-builder 1.0.25 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +76 -0
- package/esm2022/lib/components/manage-plano/popups/create-planogram/create-planogram.component.mjs +92 -23
- package/esm2022/lib/components/manage-plano/verification-table/verification-table.component.mjs +17 -14
- package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +104 -634
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/services/store-builder.service.mjs +14 -1
- package/esm2022/lib/tango-store-builder.module.mjs +2 -1
- package/fesm2022/tango-app-ui-store-builder.mjs +288 -662
- package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
- package/lib/components/file-upload/file-upload.component.d.ts +21 -0
- package/lib/components/manage-plano/popups/create-planogram/create-planogram.component.d.ts +25 -10
- package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +1 -1
- package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +8 -8
- package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +3 -17
- package/lib/services/store-builder.service.d.ts +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "tango-app-ui-shared";
|
|
4
|
+
export class FileUploadComponent {
|
|
5
|
+
toastService;
|
|
6
|
+
fileInput;
|
|
7
|
+
disabled = false;
|
|
8
|
+
fileChange = new EventEmitter();
|
|
9
|
+
file = null;
|
|
10
|
+
isDragOver = false;
|
|
11
|
+
constructor(toastService) {
|
|
12
|
+
this.toastService = toastService;
|
|
13
|
+
}
|
|
14
|
+
onDragOver(event) {
|
|
15
|
+
if (this.disabled)
|
|
16
|
+
return;
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
this.isDragOver = true;
|
|
19
|
+
}
|
|
20
|
+
onDragLeave() {
|
|
21
|
+
if (this.disabled)
|
|
22
|
+
return;
|
|
23
|
+
this.isDragOver = false;
|
|
24
|
+
}
|
|
25
|
+
onDrop(event) {
|
|
26
|
+
if (this.disabled)
|
|
27
|
+
return;
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
this.isDragOver = false;
|
|
30
|
+
const file = event.dataTransfer?.files?.[0];
|
|
31
|
+
if (file)
|
|
32
|
+
this.validateAndSetFile(file);
|
|
33
|
+
}
|
|
34
|
+
onFileSelect(event) {
|
|
35
|
+
if (this.disabled)
|
|
36
|
+
return;
|
|
37
|
+
const input = event.target;
|
|
38
|
+
const file = input.files?.[0];
|
|
39
|
+
if (file)
|
|
40
|
+
this.validateAndSetFile(file);
|
|
41
|
+
}
|
|
42
|
+
triggerFileSelect() {
|
|
43
|
+
if (this.disabled)
|
|
44
|
+
return;
|
|
45
|
+
this.fileInput.nativeElement.click();
|
|
46
|
+
}
|
|
47
|
+
validateAndSetFile(file) {
|
|
48
|
+
if (!file.name.toLowerCase().endsWith(".dxf")) {
|
|
49
|
+
this.toastService.getErrorToast("Only .DXF files are supported");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.file = file;
|
|
53
|
+
this.fileChange.emit(file);
|
|
54
|
+
}
|
|
55
|
+
removeFile() {
|
|
56
|
+
if (this.disabled || !this.file)
|
|
57
|
+
return;
|
|
58
|
+
this.file = null;
|
|
59
|
+
this.fileInput.nativeElement.value = "";
|
|
60
|
+
this.fileChange.emit(null);
|
|
61
|
+
}
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FileUploadComponent, isStandalone: true, selector: "file-upload", inputs: { disabled: "disabled" }, outputs: { fileChange: "fileChange" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div class=\"upload-box\" [class.drag-over]=\"isDragOver\" [class.disabled]=\"disabled\" (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave()\" (drop)=\"onDrop($event)\">\r\n <input #fileInput type=\"file\" accept=\".dxf\" hidden [disabled]=\"disabled\" (change)=\"onFileSelect($event)\" />\r\n\r\n @if (file) {\r\n <div class=\"file-chip\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_767_7382)\" />\r\n <defs>\r\n <pattern id=\"pattern0_767_7382\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_767_7382\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image id=\"image0_767_7382\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\" />\r\n </defs>\r\n </svg>\r\n\r\n <span class=\"name\">{{ file.name }}</span>\r\n\r\n <svg class=\"remove\" (click)=\"removeFile()\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M13.5 4.5L4.5 13.5M4.5 4.5L13.5 13.5\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n\r\n </div>\r\n }\r\n\r\n @else {\r\n <div class=\"empty-state\" (click)=\"triggerFileSelect()\">\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"40\" cy=\"40\" r=\"40\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M55.5008 34.375H51.3752L47.6258 38.1253H42.3752V34.375H31.1252V49.3753H27.3758C26.8785 49.3676 26.3846 49.4589 25.9229 49.6439C25.4612 49.8289 25.0409 50.1039 24.6864 50.4528C24.332 50.8018 24.0506 51.2178 23.8584 51.6766C23.6663 52.1353 23.5674 52.6278 23.5674 53.1251C23.5674 53.6225 23.6663 54.1149 23.8584 54.5737C24.0506 55.0325 24.332 55.4485 24.6864 55.7975C25.0409 56.1464 25.4612 56.4214 25.9229 56.6064C26.3846 56.7914 26.8785 56.8827 27.3758 56.875H55.5008C55.998 56.875 56.4748 56.6775 56.8264 56.3259C57.178 55.9743 57.3755 55.4975 57.3755 55.0003V36.2497C57.3755 35.7525 57.178 35.2757 56.8264 34.9241C56.4748 34.5725 55.998 34.375 55.5008 34.375ZM31.1252 28.75V49.3753H27.3758C26.3813 49.3753 25.4275 49.7703 24.7242 50.4734C24.0209 51.1765 23.6257 52.1302 23.6255 53.1247V32.5003C23.6255 31.5057 24.0206 30.5518 24.7239 29.8484C25.4272 29.1451 26.3811 28.75 27.3758 28.75H31.1252Z\"\r\n fill=\"#D0D5DD\" />\r\n <path\r\n d=\"M31.1252 49.3753V34.375H42.3752V38.1253H47.6258L51.3752 34.375H55.5008C55.998 34.375 56.4748 34.5725 56.8264 34.9241C57.178 35.2757 57.3755 35.7525 57.3755 36.2497V55.0003C57.3755 55.4975 57.178 55.9743 56.8264 56.3259C56.4748 56.6775 55.998 56.875 55.5008 56.875H27.3758C26.8785 56.8827 26.3846 56.7914 25.9229 56.6064C25.4612 56.4214 25.0409 56.1464 24.6864 55.7975C24.332 55.4485 24.0506 55.0325 23.8584 54.5737C23.6663 54.1149 23.5674 53.6225 23.5674 53.1251C23.5674 52.6278 23.6663 52.1353 23.8584 51.6766C24.0506 51.2178 24.332 50.8018 24.6864 50.4528C25.0409 50.1039 25.4612 49.8289 25.9229 49.6439C26.3846 49.4589 26.8785 49.3676 27.3758 49.3753M31.1252 49.3753H27.3758M31.1252 49.3753V28.75H27.3758C26.3811 28.75 25.4272 29.1451 24.7239 29.8484C24.0206 30.5518 23.6255 31.5057 23.6255 32.5003V53.1247C23.6257 52.1302 24.0209 51.1765 24.7242 50.4734C25.4275 49.7703 26.3813 49.3753 27.3758 49.3753\"\r\n stroke=\"#98A2B3\" stroke-width=\"0.84375\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M56.8317 26.293L54.2064 23.6686C53.856 23.3252 53.3849 23.1328 52.8942 23.1328C52.4035 23.1328 51.9324 23.3252 51.582 23.6686L42.375 32.8756V38.1253H47.6256L56.8317 28.9183C57.1751 28.5679 57.3675 28.0968 57.3675 27.6061C57.3675 27.1155 57.1751 26.6434 56.8317 26.293Z\"\r\n fill=\"#33B5FF\" />\r\n </svg>\r\n\r\n <p>\r\n Click here to <span class=\"link\">upload</span> or Drag and drop your CAD\r\n file\r\n </p>\r\n <small>Supports only .DXF</small>\r\n </div>\r\n }\r\n</div>", styles: [".upload-box{border:2px dashed #d7dce1;border-radius:12px;min-height:190px;display:flex;justify-content:center;align-items:center;text-align:center;background:#fff;transition:all .2s ease}.upload-box.drag-over{border-color:#4da3ff;background:#f5faff}.upload-box.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;width:100%}.empty-state .link{color:#00a3ff;font-weight:600}.empty-state small{color:#8a8f98;font-family:Inter;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%}.empty-state p{font-family:Inter;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0%;color:#344054;margin:0}.file-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d7dce1;border-radius:8px;background:#f9fafb;cursor:default}.file-chip .icon{font-size:18px}.file-chip .name{font-family:Inter;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0%;color:#1d2939}.file-chip .remove{border:none;background:transparent;font-size:16px;cursor:pointer;transition:all .15s ease}.file-chip .remove:disabled{cursor:not-allowed;opacity:.4}.file-chip .remove:hover{background:#e6e6e6;cursor:pointer;border-radius:4px}\n"] });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: "file-upload", standalone: true, template: "<div class=\"upload-box\" [class.drag-over]=\"isDragOver\" [class.disabled]=\"disabled\" (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave()\" (drop)=\"onDrop($event)\">\r\n <input #fileInput type=\"file\" accept=\".dxf\" hidden [disabled]=\"disabled\" (change)=\"onFileSelect($event)\" />\r\n\r\n @if (file) {\r\n <div class=\"file-chip\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <rect width=\"24\" height=\"24\" fill=\"url(#pattern0_767_7382)\" />\r\n <defs>\r\n <pattern id=\"pattern0_767_7382\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\r\n <use xlink:href=\"#image0_767_7382\" transform=\"scale(0.00195312)\" />\r\n </pattern>\r\n <image id=\"image0_767_7382\" width=\"512\" height=\"512\" preserveAspectRatio=\"none\"\r\n xlink:href=\"data:image/png;base64,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\" />\r\n </defs>\r\n </svg>\r\n\r\n <span class=\"name\">{{ file.name }}</span>\r\n\r\n <svg class=\"remove\" (click)=\"removeFile()\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M13.5 4.5L4.5 13.5M4.5 4.5L13.5 13.5\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n\r\n </div>\r\n }\r\n\r\n @else {\r\n <div class=\"empty-state\" (click)=\"triggerFileSelect()\">\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 80 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"40\" cy=\"40\" r=\"40\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M55.5008 34.375H51.3752L47.6258 38.1253H42.3752V34.375H31.1252V49.3753H27.3758C26.8785 49.3676 26.3846 49.4589 25.9229 49.6439C25.4612 49.8289 25.0409 50.1039 24.6864 50.4528C24.332 50.8018 24.0506 51.2178 23.8584 51.6766C23.6663 52.1353 23.5674 52.6278 23.5674 53.1251C23.5674 53.6225 23.6663 54.1149 23.8584 54.5737C24.0506 55.0325 24.332 55.4485 24.6864 55.7975C25.0409 56.1464 25.4612 56.4214 25.9229 56.6064C26.3846 56.7914 26.8785 56.8827 27.3758 56.875H55.5008C55.998 56.875 56.4748 56.6775 56.8264 56.3259C57.178 55.9743 57.3755 55.4975 57.3755 55.0003V36.2497C57.3755 35.7525 57.178 35.2757 56.8264 34.9241C56.4748 34.5725 55.998 34.375 55.5008 34.375ZM31.1252 28.75V49.3753H27.3758C26.3813 49.3753 25.4275 49.7703 24.7242 50.4734C24.0209 51.1765 23.6257 52.1302 23.6255 53.1247V32.5003C23.6255 31.5057 24.0206 30.5518 24.7239 29.8484C25.4272 29.1451 26.3811 28.75 27.3758 28.75H31.1252Z\"\r\n fill=\"#D0D5DD\" />\r\n <path\r\n d=\"M31.1252 49.3753V34.375H42.3752V38.1253H47.6258L51.3752 34.375H55.5008C55.998 34.375 56.4748 34.5725 56.8264 34.9241C57.178 35.2757 57.3755 35.7525 57.3755 36.2497V55.0003C57.3755 55.4975 57.178 55.9743 56.8264 56.3259C56.4748 56.6775 55.998 56.875 55.5008 56.875H27.3758C26.8785 56.8827 26.3846 56.7914 25.9229 56.6064C25.4612 56.4214 25.0409 56.1464 24.6864 55.7975C24.332 55.4485 24.0506 55.0325 23.8584 54.5737C23.6663 54.1149 23.5674 53.6225 23.5674 53.1251C23.5674 52.6278 23.6663 52.1353 23.8584 51.6766C24.0506 51.2178 24.332 50.8018 24.6864 50.4528C25.0409 50.1039 25.4612 49.8289 25.9229 49.6439C26.3846 49.4589 26.8785 49.3676 27.3758 49.3753M31.1252 49.3753H27.3758M31.1252 49.3753V28.75H27.3758C26.3811 28.75 25.4272 29.1451 24.7239 29.8484C24.0206 30.5518 23.6255 31.5057 23.6255 32.5003V53.1247C23.6257 52.1302 24.0209 51.1765 24.7242 50.4734C25.4275 49.7703 26.3813 49.3753 27.3758 49.3753\"\r\n stroke=\"#98A2B3\" stroke-width=\"0.84375\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M56.8317 26.293L54.2064 23.6686C53.856 23.3252 53.3849 23.1328 52.8942 23.1328C52.4035 23.1328 51.9324 23.3252 51.582 23.6686L42.375 32.8756V38.1253H47.6256L56.8317 28.9183C57.1751 28.5679 57.3675 28.0968 57.3675 27.6061C57.3675 27.1155 57.1751 26.6434 56.8317 26.293Z\"\r\n fill=\"#33B5FF\" />\r\n </svg>\r\n\r\n <p>\r\n Click here to <span class=\"link\">upload</span> or Drag and drop your CAD\r\n file\r\n </p>\r\n <small>Supports only .DXF</small>\r\n </div>\r\n }\r\n</div>", styles: [".upload-box{border:2px dashed #d7dce1;border-radius:12px;min-height:190px;display:flex;justify-content:center;align-items:center;text-align:center;background:#fff;transition:all .2s ease}.upload-box.drag-over{border-color:#4da3ff;background:#f5faff}.upload-box.disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;width:100%}.empty-state .link{color:#00a3ff;font-weight:600}.empty-state small{color:#8a8f98;font-family:Inter;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0%}.empty-state p{font-family:Inter;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0%;color:#344054;margin:0}.file-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d7dce1;border-radius:8px;background:#f9fafb;cursor:default}.file-chip .icon{font-size:18px}.file-chip .name{font-family:Inter;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0%;color:#1d2939}.file-chip .remove{border:none;background:transparent;font-size:16px;cursor:pointer;transition:all .15s ease}.file-chip .remove:disabled{cursor:not-allowed;opacity:.4}.file-chip .remove:hover{background:#e6e6e6;cursor:pointer;border-radius:4px}\n"] }]
|
|
68
|
+
}], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { fileInput: [{
|
|
69
|
+
type: ViewChild,
|
|
70
|
+
args: ["fileInput"]
|
|
71
|
+
}], disabled: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], fileChange: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7OztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBU1Y7SUFSSSxTQUFTLENBQWdDO0lBRXhELFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDaEIsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFdkQsSUFBSSxHQUFnQixJQUFJLENBQUM7SUFDekIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVuQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFbEQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBZ0I7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBWTtRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUUxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBVTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNqRSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUV4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7d0dBN0RVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHdQQ2hCaEMsdXVtQkFvRE07OzRGRHBDTyxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUk7aUZBS1EsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUViLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1zaGFyZWRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImZpbGUtdXBsb2FkXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZChcImZpbGVJbnB1dFwiKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgbnVsbD4oKTtcclxuXHJcbiAgZmlsZTogRmlsZSB8IG51bGwgPSBudWxsO1xyXG4gIGlzRHJhZ092ZXIgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSkge31cclxuXHJcbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaXNEcmFnT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdMZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcz8uWzBdO1xyXG4gICAgaWYgKGZpbGUpIHRoaXMudmFsaWRhdGVBbmRTZXRGaWxlKGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XHJcbiAgICBpZiAoZmlsZSkgdGhpcy52YWxpZGF0ZUFuZFNldEZpbGUoZmlsZSk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyRmlsZVNlbGVjdCgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlQW5kU2V0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICBpZiAoIWZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKFwiLmR4ZlwiKSkge1xyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KFwiT25seSAuRFhGIGZpbGVzIGFyZSBzdXBwb3J0ZWRcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGUgPSBmaWxlO1xyXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVGaWxlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuZmlsZSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZmlsZSA9IG51bGw7XHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcclxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidXBsb2FkLWJveFwiIFtjbGFzcy5kcmFnLW92ZXJdPVwiaXNEcmFnT3ZlclwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIChkcmFnb3Zlcik9XCJvbkRyYWdPdmVyKCRldmVudClcIlxyXG4gICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgpXCIgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIj5cclxuICAgIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiLmR4ZlwiIGhpZGRlbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdCgkZXZlbnQpXCIgLz5cclxuXHJcbiAgICBAaWYgKGZpbGUpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jaGlwXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ1cmwoI3BhdHRlcm4wXzc2N183MzgyKVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0dGVybiBpZD1cInBhdHRlcm4wXzc2N183MzgyXCIgcGF0dGVybkNvbnRlbnRVbml0cz1cIm9iamVjdEJvdW5kaW5nQm94XCIgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaW1hZ2UwXzc2N183MzgyXCIgdHJhbnNmb3JtPVwic2NhbGUoMC4wMDE5NTMxMilcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcGF0dGVybj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1hZ2UgaWQ9XCJpbWFnZTBfNzY3XzczODJcIiB3aWR0aD1cIjUxMlwiIGhlaWdodD1cIjUxMlwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeGxpbms6aHJlZj1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBZ0FBQUFJQUNBWUFBQUQwZU5UNkFBQUFDWEJJV1hNQUFBN0RBQUFPd3dISGI2aGtBQUFBR1hSRldIUlRiMlowZDJGeVpRQjNkM2N1YVc1cmMyTmhjR1V1YjNKbm0rNDhHZ0FBSUFCSlJFRlVlSnp0M1hsNFhXZGg1L0hmdVp0MEpWbXJKZTlyYkV0MkVyTFpJWVJNaUxNeGJZQ1VnUVFhSjZHVUdWSW90RUFoeVRDZFBubmFzb1NVbVdrN01OQU5TSUlwZ1JKS1ErSEpack0wSWNRMlpDR09IVy94dmtuV3ZsenAzak4vT0Vyc1dMSWwzWFBlOTV6emZqL1B3L01RVzdyM3RhMTd6L2UrNXozdjhZUUp1ZktieHhhVXBOV2UvSldTMXlyNUN5VTFTYXFSbExVN09nQmh1ZTNDbXArK2QzbnVMYmJIQVFUTnN6MkFLTHY4M3M1RjZZeC9pM3l0a2Z4bHRzY0R3THkvZVd1OXRuYU1QUG11WmJsTGJZOEZDRkxHOWdDaTZLcTFIVzhvK2Zxa1ZMcEp2dEsyeHdQQXJyT2JzMjk2NE1YQ0wyOXN5MTFzZXl4QVVBaUFFMXkxOXRDTWtwKzlwK1RyWmpFN0F1QUViNWlSWFVVRUlFbFN0Z2NRRlZldTdmamRrcDk5VWRJdDR1QVBZQXh2bUpGZDlTOWJDMC9ZSGdjUUJPY0Q0SVlIL056cXRSMS81L3RhSzZuZTluZ0FSTnZaemRrM0VRRklBcWNENE5wN0QxWWZIVDcyQS9uNmI3YkhBaUErUnRjRTJCNEhVQTVuQStETi8zaGsybkFxOTVpa3Q5b2VDNEQ0NFhRQTRzN0pBTGpoQVQrWHEweC9SNTdlYUhzc0FPS0xtUURFbVpNQmNIVGsyUDhWbi93QkJJQ1pBTVNWY3dHd2VtMzdqWnp6QnhBa1pnSVFSMDRGd0ZWckQ4MlE3MzNWOWpnQUpNL29QZ0cyeHdGTWxGTUI0SmV5ZnlVdTlRTVFFaUlBY2VKTUFGeDVYK2VGdnFjMXRzY0JJTmxZRTRDNGNDWUEvSlQvYWJIREh3QURXQk9BT0hBaUFDNi90M09SNUwvVDlqZ0F1SU9aQUVTZEV3R1FTdnUzeXBFL0s0RG9ZQ1lBVWViRVFkR1Rickk5QmdCdVlpWUFVWlg0QUxqNjNvNzVrci9NOWpnQXVJdVpBRVJSNGdPZ2xQR3VzajBHQUdBbUFGR1QrQUR3ZmY4aTIyTUFBSW1aQUVSTDRnTkE4bHB0andBQVJyRlpFS0xDZ1FEd0Y5c2VBUUNjaU5NQmlBSUhBb0N0ZndGRUQ2Y0RZSnNMQVZCamV3QUFNQlpPQjhBbUZ3SWdaM3NBQURBZUlnQzJ1QkFBQUJCcFJBQnNJQUFBSUFLSUFKaEdBQUJBUkJBQk1Ja0FBSUFJSVFKZ0NnRUFBQkZEQk1BRUFnQUFJb2dJUU5nSUFBQ0lLQ0lBWVNJQUFDRENpQUNFaFFBQWdJZ2pBaEFHQWdBQVlvQUlRTkFJQUFDSUNTSUFRU0lBQUNCR2lBQUVoUUFBZ0pnaEFoQUVBZ0FBWW9nSVFMa0lBQUNJS1NJQTVTQUFBQ0RHaUFCTUZRRUFBREZIQkdBcUNBQUFTQUFpQUpORkFBQkFRaEFCbUF3Q0FBQVNoQWpBUkJFQUFKQXdSQUFtZ2dBQWdBUWlBbkFtQkFBQUpCUVJnTk1oQUFBZ3dZZ0FqSWNBQUlDRUl3SXdGZ0lBQUJ4QUJPRDFDQUFBY0FRUmdCTVJBQURnRUNJQW93Z0FBSEFNRVFDSkFBQUFKeEVCSUFBQXdGRkVnTnNJQUFCd0dCSGdMZ0lBQUJ4SEJMaUpBQUFBRUFFT0lnQUFBSktJQU5jUUFBQ0FWeEVCN2lBQUFBQW5JUUxjUUFBQUFFNUJCQ1FmQVFBQUdCTVJrR3dFQUFCZ1hFUkFjaEVBQUlEVElnS1NpUUFBQUp3UkVaQThCQUFBWUVLSWdHUWhBQUFBRTBZRUpBY0JBQUNZRkNJZ0dRZ0FBTUNrRVFIeFJ3QUFBS2FFQ0lnM0FnQUFNR1ZFUUh3UkFBQ0FzaEFCOFVRQUFBREtSZ1RFRHdFQUFBZ0VFUkF2QkFBQUlEQkVRSHdRQUFDQVFCRUI4VUFBQUFBQ1J3UkVId0VBQUFnRkVSQnRCQUFBSURSRVFIUVJBQUNBVUJFQjBVUUFBQUJDUndSRUR3RUFBRENDQ0lnV0FnQUFZQXdSRUIwRUFBREFLQ0lnR2dnQUFJQnhSSUI5QkFBQXdBb2l3QzRDQUFCZ0RSRmdEd0VBQUxDS0NMQ0RBQUFBV0VjRW1FY0FBQUFpZ1Fnd2l3QUFBRVFHRVdBT0FRQUFpQlFpd0F3Q0FBQVFPVVJBK0FnQUFFQWtFUUhoSWdBQUFKRkZCSVNIQUFBQVJCb1JFQTRDQUFBUWVVUkE4QWdBQUVBc0VBSEJJZ0FBQUxGQkJBU0hBQUFBeEFvUkVBd0NBQUFRTzBSQStRZ0FBRUFzRVFIbElRQUFBTEZGQkV3ZEFRQUFpRFVpWUdvSUFBQkE3QkVCazBjQUFBQVNnUWlZSEFJQUFKQVlSTURFRVFBQWdFUWhBaWFHQUFBQUpBNFJjR1lFQUFBZ2tZaUEweU1BQUFDSlJRU01qd0FBQUNRYUVUQTJBZ0FBa0hoRXdLa0lBQUNBRTRpQWt4RUFBQUJuRUFHdklRQUFBRTRoQW80akFBQUF6aUVDQ0FBQWdLTmNqd0FDQUFEZ0xKY2pnQUFBQURqTjFRZ2dBQUFBem5NeEFnZ0FBQURrWGdRUUFBQUF2TUtsQ01qWUhnQUFSRm4vaUs5c3lmWW9ZTktTeHN5cWJ6dzN1UDU5NTFaZVlYc3NZU0lBQU9BMDdueXN5L1lRWU1kYmJBOGdiSndDQUFEQVFRUUFBQUFPSWdBQUFIQVFBUUFBZ0lNSUFBQUFIRVFBQUFEZ0lBSUFBQUFIRVFBQUFEaUlBQUFBd0VFRUFBQUFEaUlBQUFCd0VBRUFBSUNEQ0FBQUFCeEVBQUFBNENBQ0FBQUFCeEVBQUFBNGlBQUFBTUJCQkFBQUFBNGlBQUFBY0JBQkFBQ0Fnd2dBQUFBY1JBQUFBT0FnQWdBQUFBY1JBQUFBT0lnQUFBREFRUVFBQUFBT0lnQUFBSEFRQVFBQWdJTUlBQUFBSEVRQUFBRGdJQUlBQUFBSEVRQUFBRGlJQUFBQXdFRUVBQUFBRGlJQUFBQndFQUVBQUlDRENBQUFBQnhFQUFBQTRDQUNBQUFBQnhFQUFBQTRpQUFBQU1CQkJBQUFBQTRpQUFBQWNCQUJBQUNBZ3dnQUFBQWNSQUFBQU9BZ0FnQUFBQWNSQUFBQU9JZ0FBQURBUVFRQUFBQU9JZ0FBQUhBUUFRQUFnSU1JQUFBQUhFUUFBQURnSUFJQUFBQUhFUUFBQURpSUFBQUF3RUVFQUFBQURpSUFBQUJ3RUFFQUFJQ0RDQUFBQUJ4RUFBQUE0Q0FDQUFBQUJ4RUFBQUE0aUFBQUFNQkJCQUFBQUE0aUFBQUFjQkFCQUFDQWd3Z0FBQUFjUkFBQUFPQWdBZ0FBQUFjUkFBQUFPSWdBQUFEQVFRUUFBQUFPSWdBQUFIQVFBUUFBZ0lNSUFBQUFIRVFBQUFEZ0lBSUFBQUFIRVFBQUFEaUlBQUFBd0VFRUFBQUFEaUlBQUFCd0VBRUFBSUNEQ0FBQUFCeEVBQUFBNENBQ0FBQUFCeEVBQUFBNGlBQUFBTUJCQkFBQUFBNGlBQUFBY0JBQkFBQ0Fnd2dBQUFBY1JBQUFBT0FnQWdBQUFBY1JBQUFBT0lnQUFBREFRUVFBQUFBT0lnQUFBSEFRQVFBQWdJTUlBQUFBSEVRQUFBRGdJQUlBQUFBSEVRQUFBRGlJQUFBQXdFRUVBQUFBRGlJQUFBQndFQUVBQUlDRENBQUFBQnhFQUFBQTRDQUNBQUFBQnhFQUFBQTR5QXZza1Q3NTFDSmxVcXNsN3lMNTNqTEpYeWlwU1ZLTnBHeGd6d01BUVBJTlMrcVYxQzU1dTZUU0Z2bXBqVXFsMXVuekYrd0s0Z25LQzRBN055NlI3OThpYVkya3M0SVlFQUFBT0syWDVQbHJWZlR1MHowcnQwLzFRYVlXQUovNjVmbEtwejhoMzE4alRpTUFBR0NETDA4L2xLZS8xT2RXUGpYWmI1NWNBSHg2d3l5VnZMdGYrZFFQQUFDaXdOTkRTcGMrck05Y3ZHZmkzekpSdDI5OHZ6ei9yeVZObThyWUFBQkFxTG9sLzZPNmU5VzlFL25pTXdmQVhlc3FOVER0cTVKdUxYZGtBQUFnZEY5WHZ1ZER1bXYxNE9tKzZQUUJjTmR2YWpRdytLRGtYeDNvMEFBQVFIZzg3eWZ5L2V0MTk4cXVjYjlrM0crK1kwT2RwSFdTTGdoaGFBQUFJRnliSkYwNVhnU012WUwvNDAva0pmOEg0dUFQQUVCY1hTanArN3ByWGVWWXZ6bDJBT1J5WDVHOHk4TWNGUUFBQ04wVkdxajkwbGkvY1dvQTNMN3gvV0xCSHdBQUNlSC92dTU0K3BUaitzbHJBRDY5WVphSzJpeXB6dFN3QUFCQTZMcmxwNWJyQ3hmdUgvMkZrMmNBaXZwcmNmQUhBQ0JwYXVXVjdqbnhGMTZiQWJqOTZZdmxlWlBlU2hBQUFNU0U1NjNVNXkvYUtKMDRBK0I1bjdZMklBQUFFRDYvOU9xeC92Z013UEc3K20xVmtMY0hCZ0FBVVZPUzV5L1Y1MWZ0T0Q0RGNQem1QaHo4QVFCSXRwUjg3K2JqLytlNG15d09CZ0FBbUhPVEpIbjY1Rk9MbEU3dnNEMGFBQUJneUVocVlVcVoxR3JiNHdBQUFBWmwvZFVweWJ2STlqZ0FBSUJCdm45aFNyN2ZhbnNjQUFEQXFOYVU1QzIyUFFvQUFHRFVXU214OVM4QUFLNnBTMG1xc1QwS0FBQmcxTFNVcEp6dFVRQUFBS01xVW1mK0dnQUFrRFFFQUFBQURpSUFBQUJ3VU1iMkFKQk1WZG1VNXRSVmFHNTlUblBySzlSVWxWRmRQcU82eW96cTgybEpVbVUycFlyMDhRWXRsbnoxRm9xU3BMNUNTZDJESStvZUxPcll3SWdPZGhlMC81WC9IZWd1eVBldC9iRUFJREVJQUpRdG0vWjAzdXhxWFRTM1JpdG1WR25GekNyTnJhdVFGOEw5SmZzS1JXMDdPcWd0aHdlMGFWK3ZOdTdwMVo3T29lQ2ZDQUFTenRNZEcvZzhoVW1yejJmMDFyWUdYYjJzWGl2bjFpaWZ0WGMyNlVCUFFZOXY3ZFREV3p1MVlVK3ZpcVhrL2toZnZyaE9mL1dPUmJhSElVbjY1cWJEK3V1ZjdyYzlqSEU5Zk5zNXFzOUg1ek5PNzFCUlJkOVg3MUJSSmY5NHpJNlVmUFVWU2hvYUthbWpmMFJIKzRaMXBIZFlSM3VIdGJ0clNQdTdDaG91SnZmbkdYWkY1OVdCeVBNODZiS0Z0VnF6c2tXWExheFZKaDNDUi93cG1EVXRwelVYdFdqTlJTMDYzRHVzN3p4elZBLzg2b2dPOVE3YkhscmczakM3U3JXVmFkdkRrQ1NkTjZ2YTloQk9hMXBGT2pKL1Y1S21OSlppeWRmQm5tRnRieC9RaTRjR3RQbHd2MzV6c0YrN2p6SHJoZklSQURpamxDZTliVVdqUG5qcExDMXBxclE5bk5OcXFjbnFEOTg4UzdkZE1sUGZlNjVkWC82UEF6cllVN0E5ck1DMHRsVFpIc0tyMm1aRVp5eEpsVTU1bWxPWDA1eTZuQzVmL05xbXJZZDZoL1hMbDN2MDFPNGVyZHZXcWZhK0VZdWpSRndSQURpdFZmTnFkT2RWODNUMnpIaTkyV2ZTbm00OGY3cXVQNmRSLy9qVUlYMzFpWU1hS3Bac0Q2dHNLeUowMEcyc3lxaWxKcXZEQ1p4cGlib1pOVm05L2V4R3ZmM3NScFg4QmRxMHQxYy9mdkdZZnZDYmRuVVBGbTBQRHpGQkFHQk0xYm0wUG5YbEhMM252T1pRRnZPWlVwRko2Y052bnFYcmxqZnFqb2QyNnRmNysyd1BhY3BxSzlPYVhSdXRqVHVYdDFUcGNHK1g3V0U0TGVWSksrZlZhT1c4R24xeTlSejlhUE14ZmVQcFEzcng4SUR0b1NIaTJBY0FwMWd4czBvLytNQUt2ZmY4ZUIvOFQ3U2dzVUwzcjJuVjc3OXhSbXovVEcwdFZaRWJlOXVNdk8waDRBU1ZtWlRlZVc2VEhuei9DbjNsM1V0aU4zTUhzd2dBbk9UdFp6ZHE3YzJ0bWxNWHJVK2FRY2lrUGQyK2VxNCsrOXNMSTdPQWNUS1dSL0JnMnhhaE5RbDRqZWRKVnl5cDAzZmZ0MXgzdjIyaEdxcVk3TVdwQ0FDODZ2MFh6OUFYM3JaSWxabGsvMWk4ODl3bWZlbGRaeW1YaVZjRUxJL2d3YmF0SlhwUmd0ZDRublQ5T1UxNjZBTm42OUpGdGJhSGc0aEo5anM5SnV4RGw4N1NIVmZPamR3VWMxamVzcmhPWDN6SFlxVlQ4ZmtEUjNIVi9ZTEdTbFZaM0FNQ0U5TlVuZEhmMzdCRUg3eGtwdTJoSUVKNDVVTHZ1YUJaZjN6NWJOdkRNTzZhWmZYNm45Zk9zejJNQ2NtbVBaMFZ3VXN3VTU2MHRKbFpnRGhJcHp4OTRvbzUrck5yNXl0RzNZc1FFUUNPdTN4eG5mN3NtbmdjQk1QdzN2T2I5ZTd6cHRzZXhoa3RiYzRyRzlGMUMxRThOWUh4M1hSaHN6NTMzVUpuWnZzd1BnTEFZVE9uNVhUMzJ4YkdhaG84REg5MnpmekliM0FVNVlOczIweG1BT0xtK25PYTlLZlh6TGM5REZoR0FEZ3FuZkwweGVzWHNUcFlVaTdqNlM5K2UwR2twMFdqZUFYQXFDakhDY2EzNXNKbTNYaCs5R2UvRUI0Q3dGSHZ2YUJaRjgydHNUMk15TGhnVG8zZWVXNTAzd3lqZkxuZHN1WjhwT01KNC9zZlY4K0wxTzZTTUlzQWNORDA2cXcrNXVDaXZ6UDVvOHRuUi9JU1NNK1RXaU44dVYwK205S0N4bWlmUXNIWUtqSXAzZjMyZU82TGdmSkY3OTBPb2Z2RHkyWnBXa1YwN3BJV0ZUTnFzcEZjRURpdnZpTHkvMTdMSXh3b09MMmwwL082NWFJVzI4T0FCUVNBWTJaTnkrbGRFWjdxdHUzM1ZyVkVibEhrOGhoTTBVYjVGQVhPN0NPWHpWSWo2NEdjUXdBNDV2Y3VuaEc3SGZCTW1sdGZvVXNXVExNOWpKUEVZYmU5MWdndlVzU1pWZWZTdW5VbHN3Q3VJUUFja3N0NGVzZlpqYmFIRVhuWExxdTNQWVNUeEdFR2dDc0I0bS9OUlMycXlVWDdWQk9DUlFBNDVKcWxEWkc1N0c5ZlYwRlA3T3pXanpZZjAwTXZkT2luTzdyMHdzRitGVXUrN2FIcDZtWDFrVG9ORUljQWFLbkpxcWs2YTNzWUtNTzBpclN1NHdPQ1U2SnhOSUFSYjIyeis4bTJhMkJFWDMvNnNMNy9mTHNPZEJmRy9KcXFiRXB2WGx5cjJ5NlpwWE5tMlRud05WVm5kY0djYW0zWTAydmwrVTlVbjg5b1JrMDhEcXl0TFhrOXNYUFk5akJRaHY5eWJwTysvYXNqdG9jQlF3Z0FSK1F5bnQ1czhXNWd6K3p2MDRlK3UwMGQvU09uL2JyKzRaSWUyZEtwUjdkMjZ1TnZtV1B0NWlYWHRqWkVJZ0JXeE9oKzdzdGI4bnBpWjdmdFlWajN5TlpPL1d4SDF5bS83bm1lYWl2U3FzeW1OS2N1cDFuVGNtcHR5YXMrSDUyMzRmTm1WMnRCWTRWZTdoaXlQUlFZRUoyZlBJVHFqZk9tcWRyUytiMnRSd2IwZTkvYXFvSGgwb1MveC9lbC83VituK29yTTFaMks3dmlyRHA5OXRFOXhwLzM5ZUswU1F0WEFoejMzUDQrUGZEcm94UDZXcytUem1xczFKVkw2L1hlQzVvMXV5NFg4dWpPN09xbDlmckhwdzdaSGdZTVlBMkFJMVl2dFRQOVB6aFMwaDg5dUdOU0IvOFQzZjM0WGgzdU5UK3RQSysrSWhLWFJjWGhDb0JSVWQ2dU9LcDhYOXJXUHFpLys4VkJYZlBWNS9XL2Y3SlBJMFc3NjJDdWl0Z2lXSVNIQUhDQTUwbFhMcTJ6OHR6M2JqaXNYUjJEVS83K3ZrSlIvMlRoMDRqbkhaOE90UzBPQ3dCSExXcXNqT1JPaW5GUkxQbjY2cE1IOVpIdmJiY2FBZWZOcXJZMld3aXplTFU2WUVGRHBXWk9NeisxT0Z6MDliVmZsbi93L3Q1elI2MjhJWjQveCs2OUVpb3pLUzFzcUxBNmhzbElwend0YVdaTDRIS3QzOTZsdTlmdHRmYjg2WlNuQytmWWoxK0Vqd0J3d05tV1BrWCtkRWVYanAxaDBkOUVkQThXdFdHditRVjU1MXVlQVdodHlVZnFjc1NKWUQ4QVNRSDhrNjNkZEVRdkhoNG8vNEdtYU5YOGFHMkdoWEFRQUE2d2RUbmRMMTd1Q2V5eE5oL3FEK3l4SnNyVzM5dW90aGhOLzQrSzA1cUYwQVF3V1ZVcytWWXZ4enNuUmxlZllPb0lBQWZZV2tuK3dzSGdEdG8yTGt1cXpxV3RMZ1NNNDZLNlZtWUFBcGtCa0tUSFgrb001b0dtSUk3eGlja2pBQkxPOCt3dEpOdmJHZHhCdTMzQXpnWXpOaS9MaXVOMGV0dU12THg0bmJXSXJFTzl3K29jS1A4VTJsUTBWc1ZuQXlwTUhRR1FjUE1iS2xSYmFYNUZiN0hrNjJnQTUvOUhCYkdXWUNwbTE5cFpoSmZ5cEtYTjhac0JxTW1sTmJjdVBnc1hReEhnZXRXZFpWeEJVNjc1TVZxQWlxa2hBQkp1VWFPZFZkbUhlb1lEM2RlL284OU9BTXl4TkFPd3FMRlNWZGw0dmp6YlluanFJbEFCem9Ec2JMZTNJOStzV3Z1YkVpRmM4WHlId1lUTnNIRDVueVFkN2d0MnlyNTdxQmpvNDAzVWJFdHZnbkhlVlMvT1k0OGFtek1BTXdtQXhDTUFFbTdXTkR2bjhmb0RQbUFYaWxQYlNiQmN0alpFaWVNQ3dGSEx1UklnTUM4Zll3WUE0U0VBRXM3R0JrRFM4UzJBZ3pSc2FXZTBYTWJPaXJZNDdRRDRlbkVlZTlRTUZPek1mRWtFZ0FzSWdJU3pkUXBnY0NUWUEzYkJWZ0NrN1FSQW5LK25uMVdiaTlRZDd1SnMwT0tXd0xaT2Y4RWNBaURoWnRUYU9RVlFDSGdHSU1nRmhaT1JzN0MzZlhOMVZrM1Y0ZjY3aGYzWDJScmpnQ2xYa01rNE9NV2JhQVZoZXNnL2c3Q1BBRWk0Wmtzdllrdkg2OEJWcE0yL1JNNDJzQXZiaXlIdnJCakhQUXlDRXVTUHZzMEF5TWYwS2hSTUhQL0NDWmZuN214bHNYRDhON0lMMjg5M2RZZjYrSEUraFZHdUlHY0FDaVY3QVZEQmUwZmk4UytjWU9tVXA0eWxjOWlZdXJCWDBmY01GZlg4Z1hCbkFGdytCUkFrMytKTVdzcVRzcngvSkJvQmtHQVZ2SGhqS2V4VjlIdU9EV2xQZ05zMGoyWEo5RHdIandTb1pCWWcwZmpYVGJCS3p1SEZUblV1cmJuMTRXN0J1cnR6U0x0RHZyNDhtL1owVnBPZFhTZ1JIRTRESkJ2L3VnbG1Zd0VieXRQV2tsY3E1QS9PdXp1SDFGY29xaVBrK3l0d1I3bjQ0ME5Fc3ZHdm0yQVZ2SGhqeDhRbU9udGUrZlFmOW1rQVZ4Y0NlZ202SFdJbHAzRVNqU05FZ21YRC9paUp3Sms0YU81KzVjQWY5bWtBVnk4RjlHMnUzQXRZa21JR3B5SUFnQWhaWVdJR1lEUUFRcDRCV0Q2alNody9nT2dpQUlDSVNLYzhuVFU5M0lWencwVmZoM3FPMzZreDdGTUF0WlZwYS9laUFIQm1CQUFRRVV1bVY0YSs2bnBmMTlDcjJ5cnZNWENuT1c0TUJFUVhBUUJFaElsejVpZE8rNGU5QmtCeWN5RWc1ODBSRjl5eUM3SFJQV2orMXFqOUJYTmJzYmJOQ1A5Z2VlS24vcVA5d3hvWUxvVzY1N3VMQVFERUJRR0EyTGo0Ly96YTloQkNaWG9Hd1BlbHZWMURXam85dklOMG02TlhBZ0J4d0NrQUlBSTh6OHluNVQyZGhaUCtPK3pUQVBQcUt6U3RJaDNxY3dDWUdnSUFpSURadFRuVjVjT2ZrSHY5QVQvc0FQQThhVmt6cHdHQUtDSUFnQWd3c1ZyZTk2VzlyN3YwNy9YL0hRYTJCQWFpaVFBQUlzREV1ZklqZmNNYUhEbDVVU05YQWdEdUlnQ0FDRmh1NEFxQXNRNzJ1N3NNN0FYQVFrQWdrZ2dBSUFKTUhDVEgydmx2WDFmaDFZMkJ3ckswdVZKcDdrc0JSQTRCQUZoV1c1bldyTnJ3dDh3ZEt3QkdpcjRPdnJJMWNGZ3FNaWt0YWd4M2krTW9JWFVRRndRQVlOa0tRemZOR2U5OHY0bDFBQ1pPY1FDWUhBSUFzTXpVZnZuajNmd243SnNDU1d3SUJFUVJBUUJZWm1xVi9IaTMvelVUQU13QUFGRkRBQUNXbVpnQjZDMFVkYXgvWk16Zkd5OE1nc1JkQVlIb0lRQUFpM0laVDRzTkxKQTczWGwrRTdjRmJxektxTGs2Ry9yekFKZzRBZ0N3YU9uMHZETHA4RmNBbnU0Z2IySVJvTVFzQUJBMUJBQmcwUXJMQ3dDbDA1OGVDSktKMngwRG1EZ0NBTERJOWdMQWlmNStFRnk1RXNERUpaMUFFQWdBd0tMbE0rM1BBRXprOTRPd25Dc0JnRWdoQUFCTFRONHE5MHpuK1UwRXdJTEdTbFZsZWNzQm9vSlhJMkRKL0lZSzFlVFNvVC9QUkxiN05iRVFNT1ZKU3cwRkQ0QXpJd0FBUzB6ZEpXOGlOL3d4TVFNZ2NXZEFJRW9JQU1BUzIxc0FuOGpVcFlCdE01a0JBS0tDQUFBc01YVlozRVJXK0IvcEc5YmdTQ24wc2JoeUpRQVFCd1FBWUVrVTlnQVk1ZnZTWGdPbkFWcWI4MHB4bVJ3UUNRUUFZRUZUdGJtdGNTYzZ2Vy9pTkVBK205TDhodkMzUGdad1pnUUFZSUhKYlhFbmVtRGYwMWtJZVNUSExVLzRqb0JNY0NBdUNBREFBcE9yNGZkMVRYQUd3TkNWQUt3REFLS0JBQUFzTUxVQThHamZzUHFISjdhNHo4UmRBU1h1Q1FCRUJRRUFXR0RxRk1Ca1B0V2JtZ0ZnTHdBZ0dnZ0F3TERLVEVvTDZpdU1QTmRrRnZidDZ4bzY0NFpCUVdpcHlhcXBPaFA2OHdBNFBRSUFNS3l0SmErMG9XdmhKak90UDF6MGRlZ01Xd1lIcFpWWkFNQTZBZ0F3ek9nVkFKT2MxamUzRUpCMUFJQnRCQUJnbU1rQW1PekNQbFAzQk9CS0FNQStBZ0F3ek9TbjN6MFR2QVR3MWE4M2RDVkEwdmNDQU9LQUFBQU1TcWM4TFRNVUFQM0RKYlgzalV6cWUweWRBbGpjV0ttS2RETGZmangyQWtKTUpQTVZDRVRVb29ZS1ZXYk12T3ltc3JXdnFRQklwend0YVdaTFlNQW1BZ0F3YVBuTTZKNy9uK3IzVEpYSnRSQUFUc1hGdUlpTjJzcTA4ZWNzbHFTK1FqR3d4ek81K0cwcW4rWjdob3JxSEJoUmZUNzh0d2F1QkFEc0lnQVFHMDk4OUR4bDBtWlBzRzdhMTZ1Yjd0c1MyT09aWFB3MjFVL3p1NDhOR1FvQVpnQUFtemdGQUJoa2NodmMzWk84QW1EVVpLOGNtS3EyR1hrV3pBRVdFUUNBSVRPbjVkUlFaVzdTYmFvekFLYldBZFRrMHBwYloyWkxaQUNuNGhRQVlJanBjOTdYcldpYzB0NytTNmFiRzJkYlM5N1k1a01BVGtZQUFJYXNNSGdGZ0NSOTdQTFpScDl2S3RwbVZPbVJyWjIyaHhFd3ptc2dIamdGQUJqQ3F2ZFQ4WGNDMkVNQUFJWnczZnVwVEM2S3hPU0ZmM05vMkVRQUpOaUl6OHMzS2xqd05yYlpkVGtyK3p0Z1lnckZrdTBoSUVRRVFJSU5EdlBpallybFhQSTJMdllEaUM3ZVE1S05BRWl3b1JGZXZGSFJ4dlQvdUxnellIUU44aDZTYUFSQWdsSHYwY0c1N3ZFeEF4QmRROE9jUmt3eUFpREJob3E4ZUtPaWpVKzU0K0pLZ1BIWlBHM2srMUtoeEllSUpDTUFFcXhZOGpWQ0JKUWxpTCsvYk5yVGtpWU9jdU5aTWoydnJPRjdQTVJGUmRyZVcvUlFzU1RXRVNjYkFaQncvWndHS0V0aHBQeDN3Q1hUODhwbE9NQ05KNXYyZEZaVHBlMWhSRkpGeG1JQThONlJlQVJBd2gzcEc3Ynl2S2tRam5jMnBrT0hBcmdNaWludU0yT1I1TmdxTElaalIvK0l0ZWVHR1FSQXdoM3FMbGg1M3FBL3VXVFNudEpoVk1VWkRBVXdBOEFHUUdkR0pJMHRaM0VHNEVDUG5mY09tRU1BSkp5dEYzRStGK3lQbHExem9ZVUFMb05henNIdGpKSjBKVUNRTTFWNWl3RndxTWZPN0NITUlRQVM3a0MzblJkeFZUYmdBTEEwRmRvelZDenIrejFQYWszUXdTMHNTWXFrSUJmT3phek5CZmRnazdTdml4bUFwQ01BRXU2UXBSbUFxbXl3Mjd2bUF3NktpZHBmNWltVU9YVVZiSFU3QVhYNWpHWk5zM2V3aTZyWkZnUGdJS2NBRW84QVNEaGJwd0RtMUFYN3hqVzlPaHZvNDAzVWdUSURnRjN1Sm82OUVrNWxNd0RLL2RsSDlCRUFDYmY5eUtDVjUyMm95Z1Q2eWJlNXhrNEFsRHNEa0tSejIyRkx5bUxKSU5jQXpBNDRwQ2ZqSUFHUWVCbmJBMEM0RHZRVTFONDNvcVpxOC8vVTh4c3E5UHlCL2tBZXE5blNERUM1NTBGTm45dis1ZTZlUUMvZk9tdDZwWlpPTi9ObjRFcUFVOW02ZytUUVNFbTdqZzFaZVc2WVF3QTQ0SVhEL2ZwUGkycU5QKytDK3NyQUFxQmxtdmtBR0JndXFhTy92RVdVeTJlYS9WVDdwejk2V2JzRGZPTis1N2xOK3R4MUN3Tjd2Tk5odHVSa2k1b3FyWVM3SkcwOU1xQmlpVzBBazQ1VEFBNzR6WUUrSzg5Nzd1emczdENYR1BvVWVxTG5EL2FYdGFLNzN2REN0cUdSVXVBcnQzZTBtenVGTksrK1FqVTVGa3lPV3Iya3p0cHpiejQwWU8yNVlRNEI0SURmSEF6bVUvaGtYYm93bUZtSGxDZGRNS2M2a01lYWpPZkxEQ2ZUQ3dDM3R3OEcvcWx0KzFGekFYRDhra2xPQTBoU0x1UHBmYXRtV0h2K1RmdDZyVDAzekNFQUhCRFVOUHhrTFd2TzY3elo1Uis0TDV4YlkrVXFnR2YybHhzQVpxZTB3emhZOXhhS1JyZVRaaDNBY1o5NHl4ek5zTFR3VlpJMjdDRUFYRUFBT09CQVQwSGJERTdsbnVoRGw4NHErekhldDlMT0o2Rm55NXdCTUgxT2UzdEkvOFk3RE00Q0pHSFRwSEl2QXJqaHZPbldmdWFsNCs4WGV6dFpBT2dDQXNBUmo3L1VhZVY1cjFoU3AydVcxVS81KzgrYlhhMnJ5L2orcVRyU042ejlaWjVQWDJINkZNRFJjTTdiaGhVV1kzRjUzNFRLVEVxZnVHS08vdUszRmxpNThkV29uMnp2c3Zma01Jb0FjTVM2bCt5OXFEOTczY0lwM2U2MUtwdlNaNjliYU9YTjhHZmJ1OHY2L29wMFNvc2F6ZDdpTnF4WkhwTUxBWmMyNTYzYzlNbW1KZFB6K3VBbE0vWEloODdSQnkrWmFYczRlbndyQWVBS0xnTjB4RFA3ZTYzdEJ6Q3RJcTM3MTdUcVQvNXRwNTdZT2JFRGEzTjFWbDkrOTFuVzdoUC8rTGJ5Wmt5V3RaZzlrQTBYL1VBdi96dlJqZzV6QVZDWlNXbFJRNFcxVTFaQldESzlVdis1cmVHVVg2L01wcFJMZTZxcnpHaFdiVTd6Nnl1MHRDVnY5VnovNjNVUEZ2V0wzZVhGTCtLREFIQkV5WmZXYisvVXU5NHczY3J6TjFSbDlFL3ZXYXFmNytqV3QzOTlSQnYyOXVyWTZ6YXN5YVE5blR1eld0Y3NxOWZ2WHRoc2JmLy93WkdTZnI2anZEZEIwMVBadTQ0RmZ3WEFLSk5yQUNTcGJVWlZyQVBnMnRZR1hkdDZhZ0RFd1VNdmRLZ1F3QzJ3RVE4RWdFUCtmZk14YXdFdzZyTEZ0YnBzY2ExOFgycnZIMWJuWUZFalJWOTErYlNhOGxubExOMzE3MFJQN3VyUllKbTNBVGE5QUhCYmlGcytIK290cUxkUU5IYU5mbHRMWGcrOVlPU3A4RHFIQS85ZEFBQUxrMGxFUVZUZmY3N2Q5aEJnRUFIZ2tDZDNkV3R2NTVEbTF0dlpYdlJFbm5mOEJqKzJidkp6T284RnNHRFN4aDRBWWZGOWFWZjdrTTZaWlNacWtuSlBnTGg1Wm4rZm5pM3owbGZFQzRzQUhWTHlwUWVlT1dwN0dKSFdWeWpxeDV1UGxmVVlLYy84NVd6YjI4UGR1YzNrT2dDMkJMYmpxMDhldEQwRUdFWUFPR2J0eGlQcUdnanVaakZKOC8zbjJ0VmJLSmIxR0FzYUsxVmxlUDFDbUtjQUpMTlhBalJWWjZ6ZC9NbFZ6eDNvMDdveUY3NGlmZ2dBeC9RV2l2cjYwNGR0RHlPU1JvcSt2ckdoL0w4YjAzY0FMSlo4dmR3WjdnRTY3Qm1HMStNMGdEa2xYL3JMUi9hVWRkOEx4Qk1CNEtDdi9mSVFPMzJONGJ2UEhRM2tVcm8yd3dldmx6dUhRbCs1dmRQMGxRQnNDV3pNQTg4Y0tYdmJhOFFUQWVDZ3daR1NQdmZZWHR2RGlKU2VvYUsrOUxNRGdUeVc4WHNBaER6OUwwbTdPb2MwVWpUM0ViSFY0UjBCVGRyV1BxalBQOHA3Z2FzSUFFYzk5bEtuSG5xaHcvWXdJdU9MNi9ZRmR0TWIwNmNBdGhtWW5oOHArdHBqY05hSVV3RGg2eXNVOWZFSGQ1Ujl5U3ZpaXdCdzJGMC8zaDNhN25GeDhzVE9iajN3ekpGQUhxdkp3cVdOcG03WmEvSktnSVVObGRZMmduTEJTTkhYSDM5L2gxNEs2ZjRSaUFkZVlRN3JMUlQxeDkvZm9iNHlWNzNIMmVIZVlYM3FvWjBLYWhPOXN5MThjalcxUXQva2xRQXA3L2p0cEJHOFlzblhIUS90S251M1M4UWZBZUM0ellmNjliRUhkNFMyald5VURZNlU5Tkh2YlZkN1gzQ1hSYllaUG5kZDhwTVpBSkw1eFpRdUtJejQrdGkvN3RBUE4zUDZEd1FBSlAxc1o3ZHUvN2RkVGtWQXNlVHJZdy91Q0h6MTgzTERtOWpzN1J3eWRnN1hlQUJ3SlVDZ0R2UVVkTXZhTFhwa0M5Zjc0emkyQW9ZazZZZWJPOVEzWE5UZi9NNVprZGlQUDB6RFJWOS84b09kV2gvQ2ZjK1R0QVh3S2M5bCtGSkFGZ0lHNXljN3V2VGZIOXFsam40MkFjTnJtQUhBcTladjY5SUh2cjAxMFc4U1BVTkYzZmJkYlhwNFMzbmIvWTZsS3B2Uy9BYXp0eS9lWm5BUlYyK2hHTmlWRWhQUjJweVh3VHNxSjFKNzM3RHVmR2lYYm50Z1c2SmYxNWdhQWdBbmVYcFByOTc5amMxNjdrRHlOZ2JaMWo2b0c3N3hvcDdZR2M3aXA3YVdLdU1ITEpNekFKTFpXWUM4aGFCS2l0NUNVWC8vaTRQNnJiLy9EWGY0dzdnNEJZQlQ3TzhxNkwzM2JkRnRiNXFwRDE4NlM1bDB2RCtHK2I3MHo3OCtvbnNlMzZ2KzRmRE9sNXVlL3BmTVQ4dnZhQi9VSlF1bUdYdSt0cGE4ZGhtOC9ERHV0cmNQNnA5L2RVUVBQbHYrUFMyUWZBUUF4bFFzK2ZyeWZ4elF3MXM2ZGVlVmMzWFo0bHJiUTVxU2JVY0g5SmxIOStqSlhUMmhQNWZwVmV1K3dTc0FSdGxZQ1BqakY0TS9YWk1rUi9xRzlmQ1dUdjE0YzRjMjdPMWxUMzlNR0FHQTA5cDJkRUQvOVlHWGRObmlXdjNCbTJacDVid2EyME9ha1AxZEJYM2x5UVA2bDJmYmpWM2RZUG9LZ0FQZEJlTjdPSmpjREVqaVVzQ3hESTZVOUt1OWZYcHFkNDkrc2F0Ynp4N29DMndmQzdpRkFNQ0UvSHhIdDM2K28xdm56cXJXTFN0YmRQV3lldU8zdkQwVDM1YzI3ZXZWL1JzUDYrRXRuVVl2YTB5blBDMXROcndBMFBBZCtpUnBCMWNDR0ZNcytkclhWZENlemlIdGFCL1VDNGY2OWNLaGZtMXZIelI2WHdZa0Z3R0FTWG51UUo5dS83ZWRxc3lrZE5YU2VsM1RXcTlMRmt4VGZkN09qMUt4NU92WkEzMTZkR3VuZnZUaU1lM3ZLbGdaeC9TcWpEYnU3VFg2bkQvWmJuNG50ME85QmYxa1I1ZXlCbGM3Vm1aU1U5cnI0T2s5UGFxcFNKLzJhK29xemYzYzlnd1ZWWHBsZm42azVLdS9VRkwzWUZGOWhhTDZoMHZxNkIvUjRkNkMybnRIZExodldBZDdDaHpvRVNwUGQyemdKd3hsU1huU2lwbFZXalZ2bXBiUHFOS0tHWGt0YXF4VU9vU0R4SkcrWWIxNGVFQ2JEL1ZyMDk1ZVBiMjcxK210akFGZ3FwZ0JRTmxLdnZUOGdYNDlmNkQvMVYvTHBqM05xYXZRM1BxYzV0VlZxS2s2by9wOFJuV1ZHZFZYWlpUMnBFektVM1h1K0NlMFFyR2tnVmRXNlBjTUZ0VTVNS0t1d2FJNitrZTB2N3VnZlYxRDJ0ZFZVT2NBMXpJRFFCQUlBSVJpdU9oclY4Y2dsM0FCUUVSRmF4VVhBQUF3Z2dBQUFNQkJCQUFBQUE1S1NiSnozUlFBQUxCbEtDWEo3TVhMQUFEQXRwNlVwRTdib3dBQUFFWjFwaVJ2aCsxUkFBQUFvN2FucE5JVzI2TUFBQUFHZWRxU2twL2FhSHNjQUFEQW9KSTJwZVQ1ajlrZUJ3QUFNS2lZV3AvUzNTdDNTM3JKOWxnQUFJQVJtL1hGQzE4K3ZoR1E1NisxUEJnQUFHREdXbWwwSjhDaWQ1OGtiZ3NNQUVDeWxWUXNmbE1hRFlCN1ZtNlg5SzgyUndRQUFFTDNQZjNWRzNkS0o5NEx3Q3Q5MXRwd0FBQkEySHlWOUxuUi8zZ3RBRDUvOGRPUzk4OVdoZ1FBQU1MbGVmZnJucFdiUnYvejVMc0Jsb29mbDlSbGVrd0FBQ0JVM1VyNWQ1ejRDeWNId0QwWEg1VG5mOGpva0FBQVFMaDgveVA2N01vREovNVM2cFF2K3Z5cWIwbjZ1cUVoQVFDQU1QbjZCMzFoMVgydi8rVlRBMENTOHZuYkpEMFM5cGdBQUVDbzFtdWc3aU5qL2NiWUFYRFgyUVZKTjBqYU5PYnZBd0NBcU51by9NajErdHVsUTJQOTV0Z0JJRWwzcit4U1B2OFdTUStITlRJQUFCQ0s5Wkt1MGwyWGRJLzNCZDRaSCtLakwxV29xdnZMa3YvN0FRNE1BQUNFd2RjL2FLRHVJK045OGg5MTVnQVlkZnZUdDhqei9sWlNYYmxqQXdBQWdldVM5R0hkdlhKQzkvY1oveFRBNjMxaDFYMHFsZHJrY2Q4QUFBQWl4ZE5EOGtmT21lakIvL2kzVE1VZG04NlQ1LytKZlA4bVNla3BQUVlBQUNpSEwwOC9sRXAvZm53MzM4bVpXZ0NNdXZQcHhmSzlteVhkSkttMXJNY0NBQUFUc1ZtK3ZxVlM4ZjdSRy90TVJYa0JjS0k3TnN5WHI5VktlU3ZsKzhza0xaUTBYVktOcEZ4Z3p3TUFRUElWSlBWS09pcHBsNlF0a3I5QkdYK2RQblB4bmlDZUlMZ0FpS2pWMyt4Z3ZRSUFZTkxXcldsTTlERnk0b3NBQVFCQVloQUFBQUE0aUFBQUFNQkJCQUFBQUE0aUFBQUFjQkFCQUFDQWd3Z0FBQUFjUkFBQUFPQWdBZ0FBQUFjUkFBQUFPSWdBQUFEQVFRUUFBQUFPSWdBQUFIQVFBUUFBZ0lNSUFBQUFIRVFBQUFEZ0lBSUFBQUFIRVFBQUFEaUlBQUFBd0VFRUFBQUFEaUlBQUFCd0VBRUFBSUNEQ0FBQUFCeEVBQUFBNENBQ0FBQUFCeEVBQUFBNGlBQUFBTUJCQkFBQUFBNGlBQUFBY0JBQkFBQ0Fnd2dBQUFBY1JBQUFBT0FnQWdBQUFBY1JBQUFBT0lnQUFBREFRUVFBQUFBT0lnQUFBSEFRQVFBQWdJTUlBQUFBSEVRQUFBRGdJQUlBQUFBSEVRQUFBRGlJQUFBQXdFRUVBQUFBRGlJQUFBQndFQUVBQUlDRFhBaUFndTBCQUFCaVo4ajJBTUxtUWdEMDJoNEFBQ0IyZW13UElHd3VCRUNuN1FFQUFHSW44Y2NPQndMQTIyRjdCQUNBMk5sdWV3QmhjeUFBL0MyMlJ3QUFpSnZrSHpzU0h3Q2U1MjIwUFFZQVFOeWtFbi9zU0h3QXBFYjh4MnlQQVFBUUw3NWZldHoyR01LVytBQjQ5TmJHM1pJU1A1VURBQWpNQyt0dmJ0cHJleEJoUzN3QVNKSThiNjN0SVFBQVl1T2J0Z2RnZ2hNQjRIdTZWMUxKOWpnQUFKRlg5T1FSQUVteC9uY2Jkbm1lOXozYjR3QUFSSnNuZmVmeE5RMHYyeDZIQ1U0RWdDU1ZmSDFHa205N0hBQ0F5UEk5VDUrelBRaFRuQW1BOVdzYWZpM3BQdHZqQUFCRWxPZDk3YkdiR3ArMVBReFRuQWtBU2NvV3M1K1NkTXoyT0FBQWtYTnNKSk81MC9ZZ1RISXFBQjYrZGRwaFQvNXR0c2NCQUlnWVh4LzUyWTNUanRnZWhrbE9CWUFrUGI2bTZUdSs5QlhiNHdBQVJNYVgxdDNjNk56bDRzNEZnQ1QxOURiOGtYejkyUFk0QUFDMitZOU56elo4d3ZZb2JIQXlBRGJlNWczN3VaRWJKUDNDOWxnQUFIYjQwcE4rdHZnNzM3blJLOWdlaXcxT0JvQWtyYit4cFRkYkxGek5UQUFBdU1oL2JIaXcrTmIxTjdiMDJoNkpMYzRHZ0NROWZPdk12dW01aHV0WkV3QUFUdmxTZDIvamIvM0hCNXA3YkEvRUpzLzJBS0xpaXZ2YjMrTjUzditUMUdCN0xBQ0FVSFI0OHYvZzhUVk4zN0U5a0Nod2VnYmdST3R2YnZwMkxwdGVJdmwvSSs0YkFBQko0a3U2TDF2TUx1ZmcveHBtQU1adytmMGQ1Nlk5ZlVyU1RaTFN0c2NEQUppU2tpZjl1Ni9VWGV2VzFHKzBQWmlvSVFCTzQ4cHZIbHNnNlJiNS9rMitwK1cyeHdNQW1KQVhmRTlyTXlPNjc5RmJHM2ZiSGt4VUVRQVRkUG0zMnVlbFM2blY4djJWOHRRcWVRc2xmN3FrR2trNXE0TURBUGNVSlBWSzNsSEozeW41VzZUVVJ0OHZQYjcrNXFhOXRnY1hCLzhmMnFNUHRsdlpBRGNBQUFBQVNVVk9SSzVDWUlJPVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInJlbW92ZVwiIChjbGljayk9XCJyZW1vdmVGaWxlKClcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMy41IDQuNUw0LjUgMTMuNU00LjUgNC41TDEzLjUgMTMuNVwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBlbHNlIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIiAoY2xpY2spPVwidHJpZ2dlckZpbGVTZWxlY3QoKVwiPlxyXG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHZpZXdCb3g9XCIwIDAgODAgODBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI0MFwiIGN5PVwiNDBcIiByPVwiNDBcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNTUuNTAwOCAzNC4zNzVINTEuMzc1Mkw0Ny42MjU4IDM4LjEyNTNINDIuMzc1MlYzNC4zNzVIMzEuMTI1MlY0OS4zNzUzSDI3LjM3NThDMjYuODc4NSA0OS4zNjc2IDI2LjM4NDYgNDkuNDU4OSAyNS45MjI5IDQ5LjY0MzlDMjUuNDYxMiA0OS44Mjg5IDI1LjA0MDkgNTAuMTAzOSAyNC42ODY0IDUwLjQ1MjhDMjQuMzMyIDUwLjgwMTggMjQuMDUwNiA1MS4yMTc4IDIzLjg1ODQgNTEuNjc2NkMyMy42NjYzIDUyLjEzNTMgMjMuNTY3NCA1Mi42Mjc4IDIzLjU2NzQgNTMuMTI1MUMyMy41Njc0IDUzLjYyMjUgMjMuNjY2MyA1NC4xMTQ5IDIzLjg1ODQgNTQuNTczN0MyNC4wNTA2IDU1LjAzMjUgMjQuMzMyIDU1LjQ0ODUgMjQuNjg2NCA1NS43OTc1QzI1LjA0MDkgNTYuMTQ2NCAyNS40NjEyIDU2LjQyMTQgMjUuOTIyOSA1Ni42MDY0QzI2LjM4NDYgNTYuNzkxNCAyNi44Nzg1IDU2Ljg4MjcgMjcuMzc1OCA1Ni44NzVINTUuNTAwOEM1NS45OTggNTYuODc1IDU2LjQ3NDggNTYuNjc3NSA1Ni44MjY0IDU2LjMyNTlDNTcuMTc4IDU1Ljk3NDMgNTcuMzc1NSA1NS40OTc1IDU3LjM3NTUgNTUuMDAwM1YzNi4yNDk3QzU3LjM3NTUgMzUuNzUyNSA1Ny4xNzggMzUuMjc1NyA1Ni44MjY0IDM0LjkyNDFDNTYuNDc0OCAzNC41NzI1IDU1Ljk5OCAzNC4zNzUgNTUuNTAwOCAzNC4zNzVaTTMxLjEyNTIgMjguNzVWNDkuMzc1M0gyNy4zNzU4QzI2LjM4MTMgNDkuMzc1MyAyNS40Mjc1IDQ5Ljc3MDMgMjQuNzI0MiA1MC40NzM0QzI0LjAyMDkgNTEuMTc2NSAyMy42MjU3IDUyLjEzMDIgMjMuNjI1NSA1My4xMjQ3VjMyLjUwMDNDMjMuNjI1NSAzMS41MDU3IDI0LjAyMDYgMzAuNTUxOCAyNC43MjM5IDI5Ljg0ODRDMjUuNDI3MiAyOS4xNDUxIDI2LjM4MTEgMjguNzUgMjcuMzc1OCAyOC43NUgzMS4xMjUyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTMxLjEyNTIgNDkuMzc1M1YzNC4zNzVINDIuMzc1MlYzOC4xMjUzSDQ3LjYyNThMNTEuMzc1MiAzNC4zNzVINTUuNTAwOEM1NS45OTggMzQuMzc1IDU2LjQ3NDggMzQuNTcyNSA1Ni44MjY0IDM0LjkyNDFDNTcuMTc4IDM1LjI3NTcgNTcuMzc1NSAzNS43NTI1IDU3LjM3NTUgMzYuMjQ5N1Y1NS4wMDAzQzU3LjM3NTUgNTUuNDk3NSA1Ny4xNzggNTUuOTc0MyA1Ni44MjY0IDU2LjMyNTlDNTYuNDc0OCA1Ni42Nzc1IDU1Ljk5OCA1Ni44NzUgNTUuNTAwOCA1Ni44NzVIMjcuMzc1OEMyNi44Nzg1IDU2Ljg4MjcgMjYuMzg0NiA1Ni43OTE0IDI1LjkyMjkgNTYuNjA2NEMyNS40NjEyIDU2LjQyMTQgMjUuMDQwOSA1Ni4xNDY0IDI0LjY4NjQgNTUuNzk3NUMyNC4zMzIgNTUuNDQ4NSAyNC4wNTA2IDU1LjAzMjUgMjMuODU4NCA1NC41NzM3QzIzLjY2NjMgNTQuMTE0OSAyMy41Njc0IDUzLjYyMjUgMjMuNTY3NCA1My4xMjUxQzIzLjU2NzQgNTIuNjI3OCAyMy42NjYzIDUyLjEzNTMgMjMuODU4NCA1MS42NzY2QzI0LjA1MDYgNTEuMjE3OCAyNC4zMzIgNTAuODAxOCAyNC42ODY0IDUwLjQ1MjhDMjUuMDQwOSA1MC4xMDM5IDI1LjQ2MTIgNDkuODI4OSAyNS45MjI5IDQ5LjY0MzlDMjYuMzg0NiA0OS40NTg5IDI2Ljg3ODUgNDkuMzY3NiAyNy4zNzU4IDQ5LjM3NTNNMzEuMTI1MiA0OS4zNzUzSDI3LjM3NThNMzEuMTI1MiA0OS4zNzUzVjI4Ljc1SDI3LjM3NThDMjYuMzgxMSAyOC43NSAyNS40MjcyIDI5LjE0NTEgMjQuNzIzOSAyOS44NDg0QzI0LjAyMDYgMzAuNTUxOCAyMy42MjU1IDMxLjUwNTcgMjMuNjI1NSAzMi41MDAzVjUzLjEyNDdDMjMuNjI1NyA1Mi4xMzAyIDI0LjAyMDkgNTEuMTc2NSAyNC43MjQyIDUwLjQ3MzRDMjUuNDI3NSA0OS43NzAzIDI2LjM4MTMgNDkuMzc1MyAyNy4zNzU4IDQ5LjM3NTNcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIwLjg0Mzc1XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk01Ni44MzE3IDI2LjI5M0w1NC4yMDY0IDIzLjY2ODZDNTMuODU2IDIzLjMyNTIgNTMuMzg0OSAyMy4xMzI4IDUyLjg5NDIgMjMuMTMyOEM1Mi40MDM1IDIzLjEzMjggNTEuOTMyNCAyMy4zMjUyIDUxLjU4MiAyMy42Njg2TDQyLjM3NSAzMi44NzU2VjM4LjEyNTNINDcuNjI1Nkw1Ni44MzE3IDI4LjkxODNDNTcuMTc1MSAyOC41Njc5IDU3LjM2NzUgMjguMDk2OCA1Ny4zNjc1IDI3LjYwNjFDNTcuMzY3NSAyNy4xMTU1IDU3LjE3NTEgMjYuNjQzNCA1Ni44MzE3IDI2LjI5M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMzNCNUZGXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgIENsaWNrIGhlcmUgdG8gPHNwYW4gY2xhc3M9XCJsaW5rXCI+dXBsb2FkPC9zcGFuPiBvciBEcmFnIGFuZCBkcm9wIHlvdXIgQ0FEXHJcbiAgICAgICAgICAgICAgICBmaWxlXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHNtYWxsPlN1cHBvcnRzIG9ubHkgLkRYRjwvc21hbGw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PiJdfQ==
|
package/esm2022/lib/components/manage-plano/popups/create-planogram/create-planogram.component.mjs
CHANGED
|
@@ -1,42 +1,111 @@
|
|
|
1
|
-
import { Component } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
3
|
+
import { ReactiveSelectComponent } from "../../../reactive-select/reactive-select.component";
|
|
4
|
+
import { firstValueFrom } from "rxjs";
|
|
5
|
+
import { FileUploadComponent } from "../../../file-upload/file-upload.component";
|
|
6
|
+
import { NgIf } from "@angular/common";
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
7
|
-
import * as i2 from "
|
|
9
|
+
import * as i2 from "../../../../services/store-builder.service";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
8
11
|
export class CreatePlanogramComponent {
|
|
9
12
|
activeModal;
|
|
13
|
+
storeBuilderService;
|
|
14
|
+
clientId;
|
|
10
15
|
selectedStore;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
selectedFloor;
|
|
17
|
+
selectedFile = null;
|
|
18
|
+
storeList = [];
|
|
19
|
+
floorList = [
|
|
20
|
+
{ label: "Floor 1", value: 1 },
|
|
21
|
+
{ label: "Floor 2", value: 2 },
|
|
22
|
+
{ label: "Floor 3", value: 3 },
|
|
23
|
+
];
|
|
24
|
+
selectedStoreFloors = [];
|
|
25
|
+
isLayoutExist = false;
|
|
26
|
+
isProcessing = false;
|
|
27
|
+
constructor(activeModal, storeBuilderService) {
|
|
14
28
|
this.activeModal = activeModal;
|
|
29
|
+
this.storeBuilderService = storeBuilderService;
|
|
15
30
|
}
|
|
16
|
-
ngOnInit() {
|
|
17
|
-
this.
|
|
18
|
-
}
|
|
19
|
-
initCreateModal() {
|
|
20
|
-
this.stores.push(...[{ label: 'BH-1', value: 'BH-1' }, { label: 'BH-2', value: 'BH-2' }]);
|
|
31
|
+
async ngOnInit() {
|
|
32
|
+
await this.getStoreList();
|
|
21
33
|
}
|
|
22
34
|
get isValidToCreate() {
|
|
23
|
-
return this.selectedStore && this.
|
|
35
|
+
return this.selectedStore && this.selectedFloor && this.selectedFile;
|
|
24
36
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
|
|
37
|
+
async getStoreList() {
|
|
38
|
+
try {
|
|
39
|
+
const stores = await firstValueFrom(this.storeBuilderService.getAllStores(this.clientId));
|
|
40
|
+
this.storeList = stores?.data?.map((s) => {
|
|
41
|
+
return { label: s.storeName, value: s.storeId };
|
|
29
42
|
});
|
|
30
43
|
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.log("@@ ~ getStoreList [ERR]:", error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async onStoreChange() {
|
|
49
|
+
try {
|
|
50
|
+
const floors = await firstValueFrom(this.storeBuilderService.getStoreFloorsList(this.selectedStore));
|
|
51
|
+
this.selectedStoreFloors = floors?.data ?? [];
|
|
52
|
+
this.onFloorChange();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.log("@@ ~ getStoreList [ERR]:", error);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
onFloorChange() {
|
|
59
|
+
if (this.selectedFloor) {
|
|
60
|
+
this.isLayoutExist = this.selectedStoreFloors.some((f) => f.floorNumber === this.selectedFloor);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.isLayoutExist = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
onFileChange(file) {
|
|
67
|
+
this.selectedFile = file;
|
|
68
|
+
if (file) {
|
|
69
|
+
console.log("DXF selected:", file);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log("DXF cleared");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async onCreate() {
|
|
76
|
+
if (!this.isValidToCreate)
|
|
77
|
+
return;
|
|
78
|
+
try {
|
|
79
|
+
this.isProcessing = true;
|
|
80
|
+
const planoRes = await firstValueFrom(this.storeBuilderService.createPlanoFromCAD(this.selectedFile, this.selectedStore, this.selectedFloor));
|
|
81
|
+
if (!planoRes?.data)
|
|
82
|
+
return;
|
|
83
|
+
this.activeModal.close(planoRes?.data);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.log("@@ ~ onCreate [ERR]:", error);
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
this.isProcessing = false;
|
|
90
|
+
}
|
|
31
91
|
}
|
|
92
|
+
onClickCreateStore() { }
|
|
32
93
|
onCancel() {
|
|
33
94
|
this.activeModal.dismiss();
|
|
34
95
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreatePlanogramComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreatePlanogramComponent, isStandalone: true, selector: "app-create-planogram", ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <h3 class=\"mb-4\">Create store
|
|
96
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreatePlanogramComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.StoreBuilderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreatePlanogramComponent, isStandalone: true, selector: "app-create-planogram", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"modal-wrapper\">\r\n <h3 class=\"mb-4\">Create store layout/plan from CAD</h3>\r\n <div class=\"row mb-4\">\r\n <div class=\"col-6\">\r\n <lib-reactive-select [search]=\"true\" [(ngModel)]=\"selectedStore\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"storeList\" [label]=\"'Select store'\" [action]=\"true\" (actionClick)=\"onClickCreateStore()\"\r\n [actionLabel]=\"'Create new store'\" (ngModelChange)=\"onStoreChange()\" [disabled]=\"isProcessing\">\r\n </lib-reactive-select>\r\n </div>\r\n <div class=\"col-6\">\r\n <lib-reactive-select [(ngModel)]=\"selectedFloor\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"floorList\"\r\n [label]=\"'Select floor'\" (ngModelChange)=\"onFloorChange()\" [disabled]=\"isProcessing\">\r\n </lib-reactive-select>\r\n </div>\r\n </div>\r\n <div class=\"layout-exist-wrapper\" [class.show]=\"isLayoutExist\">\r\n <div class=\"layout-exist-warning mb-4\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M9.99965 6.66667V10M9.99965 13.3333H10.008M8.57465 2.38334L1.51632 14.1667C1.37079 14.4187 1.29379 14.7044 1.29298 14.9954C1.29216 15.2865 1.36756 15.5726 1.51167 15.8254C1.65579 16.0783 1.86359 16.289 2.11441 16.4366C2.36523 16.5841 2.65032 16.6635 2.94132 16.6667H17.058C17.349 16.6635 17.6341 16.5841 17.8849 16.4366C18.1357 16.289 18.3435 16.0783 18.4876 15.8254C18.6317 15.5726 18.7071 15.2865 18.7063 14.9954C18.7055 14.7044 18.6285 14.4187 18.483 14.1667L11.4247 2.38334C11.2761 2.13843 11.0669 1.93594 10.8173 1.79541C10.5677 1.65488 10.2861 1.58105 9.99965 1.58105C9.71321 1.58105 9.43159 1.65488 9.18199 1.79541C8.93238 1.93594 8.72321 2.13843 8.57465 2.38334Z\"\r\n stroke=\"#F04438\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n This store already has a Floor {{selectedFloor}} planogram. Overwrite it? This can\u2019t be undone.\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-4\">\r\n <file-upload [disabled]=\"isProcessing\" (fileChange)=\"onFileChange($event)\"></file-upload>\r\n\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary \" [disabled]=\"!isValidToCreate || isProcessing\" (click)=\"onCreate()\">\r\n <span *ngIf=\"!isProcessing\">\r\n {{isLayoutExist ? 'Overwrite' : 'Create'}}\r\n </span>\r\n\r\n <svg *ngIf=\"isProcessing\" class=\"spinner\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"4\"></circle>\r\n </svg>\r\n </button>\r\n </div>\r\n</div>", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .counter-container{padding:10px!important;border:.49px solid #d0d5dd!important;background-color:#fff!important;justify-content:space-between!important;margin-bottom:26px!important}::ng-deep .modal-content{border-radius:12px!important}.layout-exist-warning{display:flex;align-items:center;gap:8px;padding:16px;background:#fef3f2;border:1px solid #fda29b;border-radius:8px;color:#d92d20;font-family:Inter;font-weight:600;font-size:14px;line-height:20px}.layout-exist-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-8px);transition:max-height .25s ease,opacity .2s ease,transform .2s ease}.layout-exist-wrapper.show{max-height:120px;opacity:1;transform:translateY(0)}::ng-deep .create-planogram-modal .modal-dialog{max-width:700px;width:100%}.btn .spinner{height:22px;width:46px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:6px;stroke:#fff;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "subTextField", "searchField", "label", "data", "action", "search", "prefix", "actionLabel"], outputs: ["actionClick"] }, { kind: "component", type: FileUploadComponent, selector: "file-upload", inputs: ["disabled"], outputs: ["fileChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
37
98
|
}
|
|
38
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreatePlanogramComponent, decorators: [{
|
|
39
100
|
type: Component,
|
|
40
|
-
args: [{ selector:
|
|
41
|
-
|
|
42
|
-
|
|
101
|
+
args: [{ selector: "app-create-planogram", standalone: true, imports: [
|
|
102
|
+
FormsModule,
|
|
103
|
+
ReactiveFormsModule,
|
|
104
|
+
ReactiveSelectComponent,
|
|
105
|
+
FileUploadComponent,
|
|
106
|
+
NgIf
|
|
107
|
+
], template: "<div class=\"modal-wrapper\">\r\n <h3 class=\"mb-4\">Create store layout/plan from CAD</h3>\r\n <div class=\"row mb-4\">\r\n <div class=\"col-6\">\r\n <lib-reactive-select [search]=\"true\" [(ngModel)]=\"selectedStore\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"storeList\" [label]=\"'Select store'\" [action]=\"true\" (actionClick)=\"onClickCreateStore()\"\r\n [actionLabel]=\"'Create new store'\" (ngModelChange)=\"onStoreChange()\" [disabled]=\"isProcessing\">\r\n </lib-reactive-select>\r\n </div>\r\n <div class=\"col-6\">\r\n <lib-reactive-select [(ngModel)]=\"selectedFloor\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"floorList\"\r\n [label]=\"'Select floor'\" (ngModelChange)=\"onFloorChange()\" [disabled]=\"isProcessing\">\r\n </lib-reactive-select>\r\n </div>\r\n </div>\r\n <div class=\"layout-exist-wrapper\" [class.show]=\"isLayoutExist\">\r\n <div class=\"layout-exist-warning mb-4\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M9.99965 6.66667V10M9.99965 13.3333H10.008M8.57465 2.38334L1.51632 14.1667C1.37079 14.4187 1.29379 14.7044 1.29298 14.9954C1.29216 15.2865 1.36756 15.5726 1.51167 15.8254C1.65579 16.0783 1.86359 16.289 2.11441 16.4366C2.36523 16.5841 2.65032 16.6635 2.94132 16.6667H17.058C17.349 16.6635 17.6341 16.5841 17.8849 16.4366C18.1357 16.289 18.3435 16.0783 18.4876 15.8254C18.6317 15.5726 18.7071 15.2865 18.7063 14.9954C18.7055 14.7044 18.6285 14.4187 18.483 14.1667L11.4247 2.38334C11.2761 2.13843 11.0669 1.93594 10.8173 1.79541C10.5677 1.65488 10.2861 1.58105 9.99965 1.58105C9.71321 1.58105 9.43159 1.65488 9.18199 1.79541C8.93238 1.93594 8.72321 2.13843 8.57465 2.38334Z\"\r\n stroke=\"#F04438\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n This store already has a Floor {{selectedFloor}} planogram. Overwrite it? This can\u2019t be undone.\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-4\">\r\n <file-upload [disabled]=\"isProcessing\" (fileChange)=\"onFileChange($event)\"></file-upload>\r\n\r\n </div>\r\n\r\n <div class=\"modal-actions\">\r\n <button type=\"button\" class=\"btn btn-outline\" (click)=\"onCancel()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary \" [disabled]=\"!isValidToCreate || isProcessing\" (click)=\"onCreate()\">\r\n <span *ngIf=\"!isProcessing\">\r\n {{isLayoutExist ? 'Overwrite' : 'Create'}}\r\n </span>\r\n\r\n <svg *ngIf=\"isProcessing\" class=\"spinner\" viewBox=\"0 0 50 50\">\r\n <circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"4\"></circle>\r\n </svg>\r\n </button>\r\n </div>\r\n</div>", styles: [".modal-wrapper{padding:24px}.modal-actions{display:flex;justify-content:end;gap:12px}::ng-deep .counter-container{padding:10px!important;border:.49px solid #d0d5dd!important;background-color:#fff!important;justify-content:space-between!important;margin-bottom:26px!important}::ng-deep .modal-content{border-radius:12px!important}.layout-exist-warning{display:flex;align-items:center;gap:8px;padding:16px;background:#fef3f2;border:1px solid #fda29b;border-radius:8px;color:#d92d20;font-family:Inter;font-weight:600;font-size:14px;line-height:20px}.layout-exist-wrapper{overflow:hidden;max-height:0;opacity:0;transform:translateY(-8px);transition:max-height .25s ease,opacity .2s ease,transform .2s ease}.layout-exist-wrapper.show{max-height:120px;opacity:1;transform:translateY(0)}::ng-deep .create-planogram-modal .modal-dialog{max-width:700px;width:100%}.btn .spinner{height:22px;width:46px;animation:spin .9s linear infinite}.btn .spinner .path{stroke-width:6px;stroke:#fff;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:60}@keyframes spin{to{transform:rotate(360deg)}}\n"] }]
|
|
108
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.StoreBuilderService }], propDecorators: { clientId: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}] } });
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBsYW5vZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vcG9wdXBzL2NyZWF0ZS1wbGFub2dyYW0vY3JlYXRlLXBsYW5vZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS1idWlsZGVyL3NyYy9saWIvY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vcG9wdXBzL2NyZWF0ZS1wbGFub2dyYW0vY3JlYXRlLXBsYW5vZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBZXZDLE1BQU0sT0FBTyx3QkFBd0I7SUEwQnpCO0lBQ0E7SUExQkQsUUFBUSxDQUFTO0lBQzFCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFDdEIsWUFBWSxHQUFnQixJQUFJLENBQUM7SUFFakMsU0FBUyxHQUdILEVBQUUsQ0FBQztJQUVULFNBQVMsR0FHSDtRQUNKLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQzlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFB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QWEsQ0FDbkIsQ0FDRixDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJO2dCQUFFLE9BQU87WUFFNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzVDO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLEtBQUksQ0FBQztJQUV2QixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO3dHQTlHVSx3QkFBd0I7NEZBQXhCLHdCQUF3QixrSEN0QnJDLHl4RkE0Q00sc25DRDdCRixXQUFXLDhWQUNYLG1CQUFtQiwrQkFDbkIsdUJBQXVCLHlOQUN2QixtQkFBbUIsdUdBQ25CLElBQUk7OzRGQUdLLHdCQUF3QjtrQkFicEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FHcEIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsSUFBSTtxQkFDTDtxSEFHUSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVTZWxlY3RDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vcmVhY3RpdmUtc2VsZWN0L3JlYWN0aXZlLXNlbGVjdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zdG9yZS1idWlsZGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWNyZWF0ZS1wbGFub2dyYW1cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NyZWF0ZS1wbGFub2dyYW0uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2NyZWF0ZS1wbGFub2dyYW0uY29tcG9uZW50LnNjc3NcIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgRmlsZVVwbG9hZENvbXBvbmVudCxcclxuICAgIE5nSWZcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlUGxhbm9ncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBjbGllbnRJZDogc3RyaW5nO1xyXG4gIHNlbGVjdGVkU3RvcmU6IHN0cmluZztcclxuICBzZWxlY3RlZEZsb29yOiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRGaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHN0b3JlTGlzdDoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgfVtdID0gW107XHJcblxyXG4gIGZsb29yTGlzdDoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHZhbHVlOiBudW1iZXI7XHJcbiAgfVtdID0gW1xyXG4gICAgeyBsYWJlbDogXCJGbG9vciAxXCIsIHZhbHVlOiAxIH0sXHJcbiAgICB7IGxhYmVsOiBcIkZsb29yIDJcIiwgdmFsdWU6IDIgfSxcclxuICAgIHsgbGFiZWw6IFwiRmxvb3IgM1wiLCB2YWx1ZTogMyB9LFxyXG4gIF07XHJcblxyXG4gIHNlbGVjdGVkU3RvcmVGbG9vcnM6IGFueSA9IFtdO1xyXG5cclxuICBpc0xheW91dEV4aXN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIHN0b3JlQnVpbGRlclNlcnZpY2U6IFN0b3JlQnVpbGRlclNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5nZXRTdG9yZUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1ZhbGlkVG9DcmVhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFN0b3JlICYmIHRoaXMuc2VsZWN0ZWRGbG9vciAmJiB0aGlzLnNlbGVjdGVkRmlsZTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFN0b3JlTGlzdCgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN0b3JlczogYW55ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlLmdldEFsbFN0b3Jlcyh0aGlzLmNsaWVudElkKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnN0b3JlTGlzdCA9IHN0b3Jlcz8uZGF0YT8ubWFwKChzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4geyBsYWJlbDogcy5zdG9yZU5hbWUsIHZhbHVlOiBzLnN0b3JlSWQgfTtcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkBAIH4gZ2V0U3RvcmVMaXN0IFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBvblN0b3JlQ2hhbmdlKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZmxvb3JzOiBhbnkgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLnN0b3JlQnVpbGRlclNlcnZpY2UuZ2V0U3RvcmVGbG9vcnNMaXN0KHRoaXMuc2VsZWN0ZWRTdG9yZSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFN0b3JlRmxvb3JzID0gZmxvb3JzPy5kYXRhID8/IFtdO1xyXG4gICAgICB0aGlzLm9uRmxvb3JDaGFuZ2UoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQEAgfiBnZXRTdG9yZUxpc3QgW0VSUl06XCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRmxvb3JDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsb29yKSB7XHJcbiAgICAgIHRoaXMuaXNMYXlvdXRFeGlzdCA9IHRoaXMuc2VsZWN0ZWRTdG9yZUZsb29ycy5zb21lKFxyXG4gICAgICAgIChmOiBhbnkpID0+IGYuZmxvb3JOdW1iZXIgPT09IHRoaXMuc2VsZWN0ZWRGbG9vclxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc0xheW91dEV4aXN0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkZpbGVDaGFuZ2UoZmlsZTogRmlsZSB8IG51bGwpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcclxuICAgIGlmIChmaWxlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRFhGIHNlbGVjdGVkOlwiLCBmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRFhGIGNsZWFyZWRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNyZWF0ZSgpIHtcclxuICAgIGlmICghdGhpcy5pc1ZhbGlkVG9DcmVhdGUpIHJldHVybjtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBwbGFub1JlczogYW55ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXHJcbiAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZVBsYW5vRnJvbUNBRChcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlISxcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSxcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vclxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICghcGxhbm9SZXM/LmRhdGEpIHJldHVybjtcclxuXHJcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UocGxhbm9SZXM/LmRhdGEpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJAQCB+IG9uQ3JlYXRlIFtFUlJdOlwiLCBlcnJvcik7XHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja0NyZWF0ZVN0b3JlKCkge31cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmRpc21pc3MoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLXdyYXBwZXJcIj5cclxuICA8aDMgY2xhc3M9XCJtYi00XCI+Q3JlYXRlIHN0b3JlIGxheW91dC9wbGFuIGZyb20gQ0FEPC9oMz5cclxuICA8ZGl2IGNsYXNzPVwicm93IG1iLTRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBbc2VhcmNoXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU3RvcmVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCJcclxuICAgICAgICBbZGF0YV09XCJzdG9yZUxpc3RcIiBbbGFiZWxdPVwiJ1NlbGVjdCBzdG9yZSdcIiBbYWN0aW9uXT1cInRydWVcIiAoYWN0aW9uQ2xpY2spPVwib25DbGlja0NyZWF0ZVN0b3JlKClcIlxyXG4gICAgICAgIFthY3Rpb25MYWJlbF09XCInQ3JlYXRlIG5ldyBzdG9yZSdcIiAobmdNb2RlbENoYW5nZSk9XCJvblN0b3JlQ2hhbmdlKClcIiBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCI+XHJcbiAgICAgIDwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRGbG9vclwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJmbG9vckxpc3RcIlxyXG4gICAgICAgIFtsYWJlbF09XCInU2VsZWN0IGZsb29yJ1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmxvb3JDaGFuZ2UoKVwiIFtkaXNhYmxlZF09XCJpc1Byb2Nlc3NpbmdcIj5cclxuICAgICAgPC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImxheW91dC1leGlzdC13cmFwcGVyXCIgW2NsYXNzLnNob3ddPVwiaXNMYXlvdXRFeGlzdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1leGlzdC13YXJuaW5nIG1iLTRcIj5cclxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGhcclxuICAgICAgICAgIGQ9XCJNOS45OTk2NSA2LjY2NjY3VjEwTTkuOTk5NjUgMTMuMzMzM0gxMC4wMDhNOC41NzQ2NSAyLjM4MzM0TDEuNTE2MzIgMTQuMTY2N0MxLjM3MDc5IDE0LjQxODcgMS4yOTM3OSAxNC43MDQ0IDEuMjkyOTggMTQuOTk1NEMxLjI5MjE2IDE1LjI4NjUgMS4zNjc1NiAxNS41NzI2IDEuNTExNjcgMTUuODI1NEMxLjY1NTc5IDE2LjA3ODMgMS44NjM1OSAxNi4yODkgMi4xMTQ0MSAxNi40MzY2QzIuMzY1MjMgMTYuNTg0MSAyLjY1MDMyIDE2LjY2MzUgMi45NDEzMiAxNi42NjY3SDE3LjA1OEMxNy4zNDkgMTYuNjYzNSAxNy42MzQxIDE2LjU4NDEgMTcuODg0OSAxNi40MzY2QzE4LjEzNTcgMTYuMjg5IDE4LjM0MzUgMTYuMDc4MyAxOC40ODc2IDE1LjgyNTRDMTguNjMxNyAxNS41NzI2IDE4LjcwNzEgMTUuMjg2NSAxOC43MDYzIDE0Ljk5NTRDMTguNzA1NSAxNC43MDQ0IDE4LjYyODUgMTQuNDE4NyAxOC40ODMgMTQuMTY2N0wxMS40MjQ3IDIuMzgzMzRDMTEuMjc2MSAyLjEzODQzIDExLjA2NjkgMS45MzU5NCAxMC44MTczIDEuNzk1NDFDMTAuNTY3NyAxLjY1NDg4IDEwLjI4NjEgMS41ODEwNSA5Ljk5OTY1IDEuNTgxMDVDOS43MTMyMSAxLjU4MTA1IDkuNDMxNTkgMS42NTQ4OCA5LjE4MTk5IDEuNzk1NDFDOC45MzIzOCAxLjkzNTk0IDguNzIzMjEgMi4xMzg0MyA4LjU3NDY1IDIuMzgzMzRaXCJcclxuICAgICAgICAgIHN0cm9rZT1cIiNGMDQ0MzhcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgPC9zdmc+XHJcblxyXG4gICAgICBUaGlzIHN0b3JlIGFscmVhZHkgaGFzIGEgRmxvb3Ige3tzZWxlY3RlZEZsb29yfX0gcGxhbm9ncmFtLiBPdmVyd3JpdGUgaXQ/IFRoaXMgY2Fu4oCZdCBiZSB1bmRvbmUuXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgIDxmaWxlLXVwbG9hZCBbZGlzYWJsZWRdPVwiaXNQcm9jZXNzaW5nXCIgKGZpbGVDaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIj48L2ZpbGUtdXBsb2FkPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWFjdGlvbnNcIj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IFwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZFRvQ3JlYXRlIHx8IGlzUHJvY2Vzc2luZ1wiIChjbGljayk9XCJvbkNyZWF0ZSgpXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiIWlzUHJvY2Vzc2luZ1wiPlxyXG4gICAgICAgIHt7aXNMYXlvdXRFeGlzdCA/ICAnT3ZlcndyaXRlJyA6ICdDcmVhdGUnfX1cclxuICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgPHN2ZyAqbmdJZj1cImlzUHJvY2Vzc2luZ1wiIGNsYXNzPVwic3Bpbm5lclwiIHZpZXdCb3g9XCIwIDAgNTAgNTBcIj5cclxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwicGF0aFwiIGN4PVwiMjVcIiBjeT1cIjI1XCIgcj1cIjIwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCI0XCI+PC9jaXJjbGU+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|