nuxeo-development-framework 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/nuxeo-development-framework.umd.js +430 -75
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +3 -3
- package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +264 -0
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +9 -8
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +18 -17
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +30 -3
- package/esm2015/lib/components/file-manger/file-manger.module.js +28 -8
- package/esm2015/lib/shared-services/file-manager.service.js +62 -10
- package/esm2015/lib/shared-services/mainfolder.service.js +17 -14
- package/esm2015/public-api.js +2 -1
- package/fesm2015/nuxeo-development-framework.js +422 -75
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts +41 -0
- package/lib/components/file-manger/file-manager.abstract.d.ts +4 -0
- package/lib/components/file-manger/file-manger.module.d.ts +37 -33
- package/lib/shared-services/file-manager.service.d.ts +6 -1
- package/lib/shared-services/mainfolder.service.d.ts +7 -4
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -14,21 +14,22 @@ import * as i6 from "../../../cts-tags/services/tags-api.service";
|
|
|
14
14
|
import * as i7 from "../../../../Core/services/translation/translation.service";
|
|
15
15
|
import * as i8 from "@angular/material/dialog";
|
|
16
16
|
import * as i9 from "../../../../shared-services/shared-docs.service";
|
|
17
|
-
import * as i10 from "
|
|
18
|
-
import * as i11 from "
|
|
19
|
-
import * as i12 from "../../../
|
|
20
|
-
import * as i13 from "../../../
|
|
21
|
-
import * as i14 from "../../../
|
|
22
|
-
import * as i15 from "../../../
|
|
23
|
-
import * as i16 from "../../../
|
|
24
|
-
import * as i17 from "../../../
|
|
25
|
-
import * as i18 from "../../../
|
|
26
|
-
import * as i19 from "
|
|
27
|
-
import * as i20 from "../../../../directive/
|
|
28
|
-
import * as i21 from "
|
|
29
|
-
import * as i22 from "@angular/
|
|
30
|
-
import * as i23 from "@
|
|
31
|
-
import * as i24 from "
|
|
17
|
+
import * as i10 from "../../../display-suitable-icon/display-suitable-icon/display-suitable-icon.component";
|
|
18
|
+
import * as i11 from "@angular/material/icon";
|
|
19
|
+
import * as i12 from "../../../dynamic-tabs/dynamic-tabs/dynamic-tabs.component";
|
|
20
|
+
import * as i13 from "../../../comments/components/comments-dashlet/comments-dashlet.component";
|
|
21
|
+
import * as i14 from "../../../activities-log/activities-log/activities-log.component";
|
|
22
|
+
import * as i15 from "../../../permissions/permissions/permissions.component";
|
|
23
|
+
import * as i16 from "../../../correspondence-relation/components/versions/versions.component";
|
|
24
|
+
import * as i17 from "../../../user/user/user.component";
|
|
25
|
+
import * as i18 from "../../../mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component";
|
|
26
|
+
import * as i19 from "../../../cts-tags/components/correspondence-tags/correspondence-tags.component";
|
|
27
|
+
import * as i20 from "../../../../directive/rtl/set-rtl.directive";
|
|
28
|
+
import * as i21 from "../../../../directive/permissions/permissions.directive";
|
|
29
|
+
import * as i22 from "@angular/material/tooltip";
|
|
30
|
+
import * as i23 from "@angular/cdk/bidi";
|
|
31
|
+
import * as i24 from "@ngx-translate/core";
|
|
32
|
+
import * as i25 from "../../../../pipes/localized-date.pipe";
|
|
32
33
|
export class SidepanelComponent {
|
|
33
34
|
constructor(datePipe, userPreferenceService, dialogMangmentService, dynamicFormService, documentService, tagsApiService, translationService, dialog, shared) {
|
|
34
35
|
this.datePipe = datePipe;
|
|
@@ -218,7 +219,7 @@ export class SidepanelComponent {
|
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
221
|
SidepanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, deps: [{ token: i1.DatePipe }, { token: i2.UserPreferencesService }, { token: i3.DialogMangmentService }, { token: i4.DynamicFormService }, { token: i5.DocumentsService }, { token: i6.TagsApiService }, { token: i7.TranslationService }, { token: i8.MatDialog }, { token: i9.SharedDocsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
221
|
-
SidepanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SidepanelComponent, selector: "app-sidepanel", inputs: { selectedItem: "selectedItem", menuOpen: "menuOpen", sourcePage: "sourcePage", allowAddAndBlock: "allowAddAndBlock" }, outputs: { onCloseSideMenu: "onCloseSideMenu" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["detailsTemplate"], descendants: true, static: true }, { propertyName: "commentsTemplate", first: true, predicate: ["commentsTemplate"], descendants: true, static: true }, { propertyName: "activityTemplate", first: true, predicate: ["activityTemplate"], descendants: true, static: true }, { propertyName: "permissionsTemplate", first: true, predicate: ["permissionsTemplate"], descendants: true, static: true }, { propertyName: "filesTemplate", first: true, predicate: ["filesTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"side-menu-details\" SetRtl>\r\n <div class=\"h-full\" *ngIf=\"selectedItem && showDetails && !sideMenuLoading\">\r\n <div class=\"\">\r\n <div class=\"mb-3 px-5 py-1 w-100 flex border-b-2 items-center\">\r\n <title-with-icon class=\"-my-1.5\" [context]=\"selectedItem.entity\" [showTitle]=\"false\"></title-with-icon>\r\n\r\n <div class=\"justify-center flex flex-col flex-1 flex-grow-0 w-7/12\" *ngIf=\"!selectedItem.isDirectory\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"selectedItem.entity?.properties?.['file:content']?.['name']\"\r\n [alt]=\"selectedItem.entity?.properties?.['file:content']?.['name']\">\r\n {{selectedItem.entity?.properties?.['file:content']?.['name']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm\">\r\n {{((selectedItem.entity?.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"selectedItem.isDirectory\">\r\n {{ selectedItem?.name }}\r\n </div>\r\n <ng-container *permission=\"{name: 'lockOwnerIfLocked', entity: selectedItem.entity}\">\r\n <mat-icon class=\"text-gray-500 cursor-pointer mx-3\"\r\n *permission=\"{name: 'canUpdate', entity: selectedItem.entity}\"\r\n matTooltip=\"{{ 'FOLDERS.UPDATE_DETAILS' | translate }}\"\r\n (click)=\"openUpdateFromSideMenu()\">edit</mat-icon>\r\n </ng-container>\r\n </div>\r\n <mat-icon class=\"close-icon text-gray-500\" (click)=\"closeDetailsMenu()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <div class=\"dynamic-section\">\r\n <div class=\"mx-2 h-full\">\r\n <app-dynamic-tabs [tabs]=\"myTabs\"></app-dynamic-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"sideMenuLoading\">\r\n {{ \"loading\" | translate }}\r\n </div>\r\n</div>\r\n\r\n<!-- Comments -->\r\n<ng-template #commentsTemplate>\r\n <div class=\"overflow-auto h-full\">\r\n <app-comments-dashlet [correspondence]=\"sideMenuFileDetails\" [entityId]=\"selectedItem.entity.uid\"\r\n [showaddcomment]=\"true\" [row]=\"false\">\r\n </app-comments-dashlet>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- myLogFile -->\r\n<ng-template #activityTemplate>\r\n <!-- <cts-viewer-log [correspondence]=\"selectedItem.entity\"></cts-viewer-log> -->\r\n <div class=\"h-full mt-3\">\r\n <app-activities-log [documentId]=\"selectedItem.entity.uid\" [documentTitle]=\"selectedItem.entity.title\"\r\n [file]=\"sideMenuFileDetails\"></app-activities-log>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #permissionsTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <app-permissions [sourcePage]=\"sourcePage\"\r\n [allowAddAndBlock]=\"allowAddAndBlock\" [document]=\"sideMenuFileDetails\"\r\n [documentId]=\"selectedItem.entity.uid\"></app-permissions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Files Tab -->\r\n<ng-template #filesTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <cts-versions [file]=\"selectedItem.entity\"></cts-versions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Details -->\r\n<ng-template #detailsTemplate>\r\n <div class=\"pb-2 mt-3 h-full px-2 overflow-auto\">\r\n <div class=\"static-data\">\r\n <div class=\"mt-5\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:title\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:description\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CREATED_AT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:created\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.LAST_MODIFIED\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:modified\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"super-document-fields\">\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentSubject\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentSubject\"] ? dynamicFormData[\"gdoc:documentSubject\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentNumber\"] ? dynamicFormData[\"gdoc:documentNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentReferenceNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_REF_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\" dir=\"ltr\">\r\n {{ dynamicFormData[\"gdoc:documentReferenceNumber\"] ?\r\n dynamicFormData[\"gdoc:documentReferenceNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:gDocumentDate\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_DATE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:gDocumentDate\"] ? (dynamicFormData[\"gdoc:gDocumentDate\"] |\r\n localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')) : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.category && selectedItem.entity.category !== {})'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.category && selectedItem.entity.category !== {}) ?\r\n (isArabic ? selectedItem.entity.category.arabicName : selectedItem.entity.category.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName) ?\r\n (isArabic ? selectedItem.entity.categoryType.arabicName :\r\n selectedItem.entity.categoryType.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.MAIN_TOPIC\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName) ?\r\n (isArabic ? selectedItem.entity.mainTopic.arabicName :\r\n selectedItem.entity.mainTopic.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName) ?\r\n (isArabic ? selectedItem.entity.documentType.arabicName :\r\n selectedItem.entity.documentType.englishTitle)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:secrecyLevel\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.SCRECY_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_SecrecyLevel.' + dynamicFormData[\"gdoc:secrecyLevel\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:importance\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.IMPORTANCE_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_Importance.' + dynamicFormData[\"gdoc:importance\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='selectedItem.entity.department'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ selectedItem.entity.department ?\r\n (isArabic ? selectedItem.entity.department.arabicName :\r\n selectedItem.entity.department.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:departmentCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:departmentCode\"] ? dynamicFormData[\"gdoc:departmentCode\"] : '--'}}\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyNameCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyNameCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:remarks\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:remarks\"] ? dynamicFormData[\"gdoc:remarks\"] : '--'}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.BY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm d-flex\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl\">\r\n <app-user [user]=\"dynamicFormData['dc:creator']\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"dynamicFormData['dc:contributors'].length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CONTRUBITORS\" | translate }}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\"\r\n *ngFor=\"let user of dynamicFormData['dc:contributors']\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"sharedListUser.length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{\"share.shareWith\" | translate}}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\" *ngFor=\"let user of sharedListUser\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5\" *ngIf=\"dynamicForm && dynamicFormData\">\r\n <app-multiple-dynamic-form-viewer [form]=\"dynamicForm\"\r\n [data]=\"dynamicFormData\"></app-multiple-dynamic-form-viewer>\r\n </div>\r\n <div class=\"tags-wrappers relative px-0 py-3\">\r\n <cts-correspondence-tags [correspondence]=\"sideMenuFileDetails\" [customClass]=\"'tags-dms-wrapper'\"\r\n [useParams]=\"true\" [addCustomApiName]=\"'Services.TagDocument'\"\r\n [deleteCustomApiName]=\"'Services.UntagDocument'\">\r\n </cts-correspondence-tags>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [""], components: [{ type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.DynamicTabsComponent, selector: "app-dynamic-tabs", inputs: ["tabs", "selectedIndex"] }, { type: i12.CommentsDashletComponent, selector: "app-comments-dashlet", inputs: ["entityId", "correspondence", "row", "showaddcomment", "showCommentActions"] }, { type: i13.ActivitiesLogComponent, selector: "app-activities-log", inputs: ["documentId", "file", "documentTitle"], outputs: ["success"] }, { type: i14.PermissionsComponent, selector: "app-permissions", inputs: ["documentId", "document", "allowAddAndBlock", "sourcePage"] }, { type: i15.VersionsComponent, selector: "cts-versions", inputs: ["selectedVersion", "file", "actions"], outputs: ["handleActions"] }, { type: i16.UserComponent, selector: "app-user", inputs: ["user", "type"] }, { type: i17.MultipleDynamicFormViewerComponent, selector: "app-multiple-dynamic-form-viewer", inputs: ["form", "data"] }, { type: i18.CorrespondenceTagsComponent, selector: "cts-correspondence-tags", inputs: ["correspondence", "customClass", "addCustomApiName", "deleteCustomApiName", "useParams", "accordionMode", "systemTags", "accordionOpen", "title"] }], directives: [{ type: i19.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i21.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i22.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i23.TranslatePipe, "localizedDate": i24.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
222
|
+
SidepanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SidepanelComponent, selector: "app-sidepanel", inputs: { selectedItem: "selectedItem", menuOpen: "menuOpen", sourcePage: "sourcePage", allowAddAndBlock: "allowAddAndBlock" }, outputs: { onCloseSideMenu: "onCloseSideMenu" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["detailsTemplate"], descendants: true, static: true }, { propertyName: "commentsTemplate", first: true, predicate: ["commentsTemplate"], descendants: true, static: true }, { propertyName: "activityTemplate", first: true, predicate: ["activityTemplate"], descendants: true, static: true }, { propertyName: "permissionsTemplate", first: true, predicate: ["permissionsTemplate"], descendants: true, static: true }, { propertyName: "filesTemplate", first: true, predicate: ["filesTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"side-menu-details\" SetRtl>\r\n <div class=\"h-full\" *ngIf=\"selectedItem && showDetails && !sideMenuLoading\">\r\n <div class=\"\">\r\n <div class=\"mb-3 px-5 py-1 w-100 flex border-b-2 items-center\">\r\n <!-- <title-with-icon class=\"-my-1.5\" [context]=\"selectedItem.entity\" [showTitle]=\"false\"></title-with-icon> -->\r\n <app-display-suitable-icon [data]=\"selectedItem\" [size]=\"'40px'\"></app-display-suitable-icon>\r\n\r\n <div class=\"justify-center flex flex-col flex-1 flex-grow-0 w-7/12\" *ngIf=\"!selectedItem.isDirectory\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"selectedItem.entity?.properties?.['file:content']?.['name']\"\r\n [alt]=\"selectedItem.entity?.properties?.['file:content']?.['name']\">\r\n {{selectedItem.entity?.properties?.['file:content']?.['name']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm\">\r\n {{((selectedItem.entity?.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"selectedItem.isDirectory\">\r\n {{ selectedItem?.name }}\r\n </div>\r\n <ng-container *permission=\"{name: 'lockOwnerIfLocked', entity: selectedItem.entity}\">\r\n <mat-icon class=\"text-gray-500 cursor-pointer mx-3\"\r\n *permission=\"{name: 'canUpdate', entity: selectedItem.entity}\"\r\n matTooltip=\"{{ 'FOLDERS.UPDATE_DETAILS' | translate }}\"\r\n (click)=\"openUpdateFromSideMenu()\">edit</mat-icon>\r\n </ng-container>\r\n </div>\r\n <mat-icon class=\"close-icon text-gray-500\" (click)=\"closeDetailsMenu()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <div class=\"dynamic-section\">\r\n <div class=\"mx-2 h-full\">\r\n <app-dynamic-tabs [tabs]=\"myTabs\"></app-dynamic-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"sideMenuLoading\">\r\n {{ \"loading\" | translate }}\r\n </div>\r\n</div>\r\n\r\n<!-- Comments -->\r\n<ng-template #commentsTemplate>\r\n <div class=\"overflow-auto h-full\">\r\n <app-comments-dashlet [correspondence]=\"sideMenuFileDetails\" [entityId]=\"selectedItem.entity.uid\"\r\n [showaddcomment]=\"true\" [row]=\"false\">\r\n </app-comments-dashlet>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- myLogFile -->\r\n<ng-template #activityTemplate>\r\n <!-- <cts-viewer-log [correspondence]=\"selectedItem.entity\"></cts-viewer-log> -->\r\n <div class=\"h-full mt-3\">\r\n <app-activities-log [documentId]=\"selectedItem.entity.uid\" [documentTitle]=\"selectedItem.entity.title\"\r\n [file]=\"sideMenuFileDetails\"></app-activities-log>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #permissionsTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <app-permissions [sourcePage]=\"sourcePage\"\r\n [allowAddAndBlock]=\"allowAddAndBlock\" [document]=\"sideMenuFileDetails\"\r\n [documentId]=\"selectedItem.entity.uid\"></app-permissions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Files Tab -->\r\n<ng-template #filesTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <cts-versions [file]=\"selectedItem.entity\"></cts-versions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Details -->\r\n<ng-template #detailsTemplate>\r\n <div class=\"pb-2 mt-3 h-full px-2 overflow-auto\">\r\n <div class=\"static-data\">\r\n <div class=\"mt-5\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:title\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:description\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CREATED_AT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:created\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.LAST_MODIFIED\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:modified\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"super-document-fields\">\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentSubject\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentSubject\"] ? dynamicFormData[\"gdoc:documentSubject\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentNumber\"] ? dynamicFormData[\"gdoc:documentNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentReferenceNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_REF_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\" dir=\"ltr\">\r\n {{ dynamicFormData[\"gdoc:documentReferenceNumber\"] ?\r\n dynamicFormData[\"gdoc:documentReferenceNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:gDocumentDate\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_DATE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:gDocumentDate\"] ? (dynamicFormData[\"gdoc:gDocumentDate\"] |\r\n localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')) : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.category && selectedItem.entity.category !== {})'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.category && selectedItem.entity.category !== {}) ?\r\n (isArabic ? selectedItem.entity.category.arabicName : selectedItem.entity.category.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName) ?\r\n (isArabic ? selectedItem.entity.categoryType.arabicName :\r\n selectedItem.entity.categoryType.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.MAIN_TOPIC\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName) ?\r\n (isArabic ? selectedItem.entity.mainTopic.arabicName :\r\n selectedItem.entity.mainTopic.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName) ?\r\n (isArabic ? selectedItem.entity.documentType.arabicName :\r\n selectedItem.entity.documentType.englishTitle)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:secrecyLevel\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.SCRECY_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_SecrecyLevel.' + dynamicFormData[\"gdoc:secrecyLevel\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:importance\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.IMPORTANCE_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_Importance.' + dynamicFormData[\"gdoc:importance\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='selectedItem.entity.department'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ selectedItem.entity.department ?\r\n (isArabic ? selectedItem.entity.department.arabicName :\r\n selectedItem.entity.department.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:departmentCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:departmentCode\"] ? dynamicFormData[\"gdoc:departmentCode\"] : '--'}}\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyNameCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyNameCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:remarks\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:remarks\"] ? dynamicFormData[\"gdoc:remarks\"] : '--'}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.BY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm d-flex\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl\">\r\n <app-user [user]=\"dynamicFormData['dc:creator']\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"dynamicFormData['dc:contributors'].length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CONTRUBITORS\" | translate }}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\"\r\n *ngFor=\"let user of dynamicFormData['dc:contributors']\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"sharedListUser.length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{\"share.shareWith\" | translate}}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\" *ngFor=\"let user of sharedListUser\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5\" *ngIf=\"dynamicForm && dynamicFormData\">\r\n <app-multiple-dynamic-form-viewer [form]=\"dynamicForm\"\r\n [data]=\"dynamicFormData\"></app-multiple-dynamic-form-viewer>\r\n </div>\r\n <div class=\"tags-wrappers relative px-0 py-3\">\r\n <cts-correspondence-tags [correspondence]=\"sideMenuFileDetails\" [customClass]=\"'tags-dms-wrapper'\"\r\n [useParams]=\"true\" [addCustomApiName]=\"'Services.TagDocument'\"\r\n [deleteCustomApiName]=\"'Services.UntagDocument'\">\r\n </cts-correspondence-tags>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [""], components: [{ type: i10.DisplaySuitableIconComponent, selector: "app-display-suitable-icon", inputs: ["data", "size", "dataType", "archive"] }, { type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.DynamicTabsComponent, selector: "app-dynamic-tabs", inputs: ["tabs", "selectedIndex"] }, { type: i13.CommentsDashletComponent, selector: "app-comments-dashlet", inputs: ["entityId", "correspondence", "row", "showaddcomment", "showCommentActions"] }, { type: i14.ActivitiesLogComponent, selector: "app-activities-log", inputs: ["documentId", "file", "documentTitle"], outputs: ["success"] }, { type: i15.PermissionsComponent, selector: "app-permissions", inputs: ["documentId", "document", "allowAddAndBlock", "sourcePage"] }, { type: i16.VersionsComponent, selector: "cts-versions", inputs: ["selectedVersion", "file", "actions"], outputs: ["handleActions"] }, { type: i17.UserComponent, selector: "app-user", inputs: ["user", "type"] }, { type: i18.MultipleDynamicFormViewerComponent, selector: "app-multiple-dynamic-form-viewer", inputs: ["form", "data"] }, { type: i19.CorrespondenceTagsComponent, selector: "cts-correspondence-tags", inputs: ["correspondence", "customClass", "addCustomApiName", "deleteCustomApiName", "useParams", "accordionMode", "systemTags", "accordionOpen", "title"] }], directives: [{ type: i20.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i21.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i22.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i23.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i24.TranslatePipe, "localizedDate": i25.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
222
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, decorators: [{
|
|
223
224
|
type: Component,
|
|
224
225
|
args: [{
|
|
@@ -253,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
253
254
|
}], onCloseSideMenu: [{
|
|
254
255
|
type: Output
|
|
255
256
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBOEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZLLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBMEIsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXdkgsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFBbUIsUUFBa0IsRUFDM0IscUJBQTZDLEVBQzlDLHFCQUE0QyxFQUMzQyxrQkFBc0MsRUFDdEMsZUFBaUMsRUFDakMsY0FBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLE1BQWlCLEVBQ2pCLE1BQXlCO1FBUmhCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDM0IsMEJBQXFCLEdBQXJCLHFC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O3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUcvQyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRy9DLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR2xELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluQyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVXBkYXRlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi91cGRhdGUtbW9kYWwvdXBkYXRlLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ01hbmdtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9kaWFsb2ctbWFuZ21lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFNoYXJlZERvY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL3NoYXJlZC1kb2NzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ2Zvcm1pb2pzJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VWYWx1ZXMsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY3RzLXRhZ3Mvc2VydmljZXMvdGFncy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zaWRlcGFuZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGVwYW5lbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVwYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsIE9uRGVzdHJveXtcclxuICBAVmlld0NoaWxkKCdkZXRhaWxzVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGRldGFpbHNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdjb21tZW50c1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBjb21tZW50c1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGFjdGl2aXR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgncGVybWlzc2lvbnNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcGVybWlzc2lvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdmaWxlc1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBmaWxlc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogYW55O1xyXG4gIEBJbnB1dCgpIG1lbnVPcGVuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc291cmNlUGFnZSA9ICdmaWxlcyc7XHJcbiAgQElucHV0KCkgYWxsb3dBZGRBbmRCbG9jayA9IHRydWU7XHJcbiAgc2lkZU1lbnVMb2FkaW5nID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uQ2xvc2VTaWRlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZHluYW1pY0Zvcm07IC8vIGNvbnRhaW4gZHluYW1pYyBmb3JtXHJcbiAgZHluYW1pY0Zvcm1EYXRhOyAvLyBjb250YWluIGFsbCBmaWxlIGRhdGEgaW5jbHVkaW5nIGR5bmFtaWMgZm9ybSBkYXRhXHJcbiAgcnRsRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGlzQXJhYmljID0gdHJ1ZTtcclxuICBzaWRlTWVudUZpbGVEZXRhaWxzOyAvLyBob2xkIGRhdGEgb2YgZGFjdW1lbnQgdG8gYmUgc2hvd24gaW4gc2lkZSBtZW51IGRldGFpbHNcclxuICBzaG93RGV0YWlscyA9IGZhbHNlO1xyXG4gIG15VGFicyA9IFtdO1xyXG4gIG11bHRpU2VsZWN0ZWRrZXlzOiBzdHJpbmdbXTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHRhZ3NTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBzaGFyZWRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBzaGFyZWREYXRhID0gW107XHJcbiAgc2hhcmVkTGlzdCA9IFtdO1xyXG4gIHNoYXJlZExpc3RVc2VyID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dNYW5nbWVudFNlcnZpY2U6IERpYWxvZ01hbmdtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgdGFnc0FwaVNlcnZpY2U6IFRhZ3NBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHNoYXJlZDogU2hhcmVkRG9jc1NlcnZpY2UsKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubWVudU9wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuU2lkZU1lbnVEZXRhaWxzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubXlUYWJzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdEZXRhaWxzJyxcclxuICAgICAgICBpY29uOiAnc3VidGl0bGVzJyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5kZXRhaWxzVGVtcGxhdGUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ2NvbW1lbnRzJyxcclxuICAgICAgICBpY29uOiAndGV4dHNtcycsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuY29tbWVudHNUZW1wbGF0ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAncGVybWlzc2lvbnMnLFxyXG4gICAgICAgIGljb246ICdsb2NrJyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5wZXJtaXNzaW9uc1RlbXBsYXRlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdhY3Rpdml0eScsXHJcbiAgICAgICAgaWNvbjogJ2xpc3RfYWx0JyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5hY3Rpdml0eVRlbXBsYXRlLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICAgIGlmICh0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZSkge1xyXG4gICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZVxyXG4gICAgICAgIC5zZWxlY3QoVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ydGxFbmFibGVkID0gbG9jYWxlID09PSAnYXInID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWdzU3Vic2NyaXB0aW9uID0gdGhpcy50YWdzQXBpU2VydmljZS5nZXRVcGRhdGVkRmlsZS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZVxyXG4gICAgICAgICAgLmdldERvY3VtZW50KHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaWRlTWVudUZpbGVEZXRhaWxzID0gcmVzO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljJC5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG5cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wZW5VcGRhdGVGcm9tU2lkZU1lbnUoKSB7XHJcbiAgICB0aGlzLmNsb3NlRGV0YWlsc01lbnUoKTtcclxuICAgIHRoaXMub3BlblVwZGF0ZU1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuVXBkYXRlTW9kYWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVwZGF0ZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNDAlJyxcclxuICAgICAgaGVpZ2h0OiAnNzAlJyxcclxuICAgICAgbWF4V2lkdGg6ICdhdXRvJyxcclxuICAgICAgcGFuZWxDbGFzczogJ3dhdGNoZXItZGlhbG9nLWNvbnRhaW5lcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsXHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGUsXHJcbiAgICAgICAgY29kZTogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddID8gdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddIDogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGUsXHJcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRoaXMuc2VsZWN0ZWRJdGVtLmlzRGlyZWN0b3J5LFxyXG4gICAgICB9LFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1vcGVuIGZpbGUgc2lkZSBtZW51IGRldGFpbHMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGN1c3RvbWVIZWFkZXIgPVxyXG4gICAgJ2xvY2ssZGM6Y3JlYXRvcixkYzpjb250cmlidXRvcnMsZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlLGdkb2M6Y291bnRyeUNvZGUsZ2RvYzphZ2VuY3lOYW1lQ29kZSxnZG9jOmFnZW5jeUNhdGVnb3J5Q29kZSc7XHJcblxyXG4gIG9wZW5TaWRlTWVudURldGFpbHMoKSB7XHJcbiAgICB0aGlzLnNpZGVNZW51TG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNpZGVNZW51RmlsZURldGFpbHMgPSB7fTtcclxuICAgIHRoaXMuc2hhcmVkTGlzdFVzZXIgPSBbXTtcclxuICAgIC8vIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTsgLy8gaWYgaXQgd2FzIG9wZW4gY2xvc2UgaXQgdGhlbiBvcGVuIGl0IGFnYWluIHRvIGFsbG93IHRhYnMgdG8gYmUgcmVyZW5kcmVkXHJcbiAgICB0aGlzLmR5bmFtaWNGb3JtID0gbnVsbDtcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeSA9PT0gZmFsc2UpIHtcclxuICAgIHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXREeW5hbWljRm9ybSh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllc1snZ2RvYzpkb2N1bWVudFR5cGVDb2RlJ10gPyB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllc1snZ2RvYzpkb2N1bWVudFR5cGVDb2RlJ10gOiB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXNbJ2NvbXBvbmVudHMnXSAmJiByZXNbJ2NvbXBvbmVudHMnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtID0gcmVzO1xyXG4gICAgICAgICAgbGV0IHByZWZpeCA9IHJlcy5wcmVmaXg7XHJcbiAgICAgICAgICBVdGlscy5lYWNoQ29tcG9uZW50KHJlcy5jb21wb25lbnRzLCAoY29tcCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29tcC50eXBlID09PSAndXNlclNlbGVjdG9yJykge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMudXNlclNlbGVjdG9yS2V5cy5wdXNoKGNvbXAuZml4ZWRLZXkpO1xyXG4gICAgICAgICAgICAgIGxldCBjb21wUHJlZml4ID0gcHJlZml4W2NvbXAuZml4ZWRLZXldXHJcbiAgICAgICAgICAgICAgICA/IHByZWZpeFtjb21wLmZpeGVkS2V5XVxyXG4gICAgICAgICAgICAgICAgOiAnJztcclxuICAgICAgICAgICAgICBpZiAoY29tcFByZWZpeCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lSGVhZGVyID1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lSGVhZGVyICtcclxuICAgICAgICAgICAgICAgICAgJywnICtcclxuICAgICAgICAgICAgICAgICAgY29tcFByZWZpeCArXHJcbiAgICAgICAgICAgICAgICAgICc6JyArXHJcbiAgICAgICAgICAgICAgICAgIGNvbXAuZml4ZWRLZXk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciA9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciArICcsJyArIGNvbXAuZml4ZWRLZXk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0RG9jdW1lbnQodGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCwge1xyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogdGhpcy5jdXN0b21lSGVhZGVyLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVNZW51RmlsZURldGFpbHMgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1EYXRhID0gcmVzPy5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dEZXRhaWxzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zaWRlTWVudUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZ2V0U2hhcmVzQnlNZSgpO1xyXG5cclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuc2lkZU1lbnVGaWxlRGV0YWlscyA9IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eVxyXG4gICAgLy8gICAgIHRoaXMuc2hvd0RldGFpbHMgPSB0cnVlXHJcbiAgICAvLyAgIH0sIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEZXRhaWxzTWVudSgpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2lkZU1lbnVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uQ2xvc2VTaWRlTWVudS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBjbG9zZURldGFpbHNTaWRlTWVudShldmVudCkge1xyXG4gIC8vICAgaWYgKCF0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRpc2FibGVDbGlja091dFNpZGUpIHtcclxuICAvLyAgICAgaWYgKFxyXG4gIC8vICAgICAgIGV2ZW50LmlkICE9PSAnc2VlX2RldGFpbHMnICYmXHJcbiAgLy8gICAgICAgIXRoaXMuY2hlY2tGb3JDbGFzcyhldmVudC5jbGFzc05hbWUpXHJcbiAgLy8gICAgICkge1xyXG4gIC8vICAgICAgIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgY2hlY2tGb3JDbGFzcyhjbGFzc05hbWUpIHtcclxuICAgIGxldCBjbGFzc2VzID0gW1xyXG4gICAgICAnZGV0YWlsZWQtbWVudScsXHJcbiAgICAgICduZy10YWctbGFiZWwnLFxyXG4gICAgICAnbmctb3B0aW9uLWxhYmVsJyxcclxuICAgICAgJ25nLXN0YXItaW5zZXJ0ZWQnLFxyXG4gICAgXTtcclxuICAgIGxldCBjbGFzc0ZvdW5kZWQgPSBmYWxzZTtcclxuICAgIGNsYXNzZXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChjbGFzc05hbWUuaW5jbHVkZXMoaXRlbSkpIHtcclxuICAgICAgICBjbGFzc0ZvdW5kZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjbGFzc0ZvdW5kZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRTaGFyZXNCeU1lKCkge1xyXG4gICAgdGhpcy5zaGFyZWRTdWIgPSB0aGlzLnNoYXJlZC5nZXRTaGFyZXNCeU1lKHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNoYXJlZExpc3RVc2VyID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy50YWdzU3Vic2NyaXB0aW9uID8gdGhpcy50YWdzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiBudWxsO1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA/IHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaWRlLW1lbnUtZGV0YWlsc1wiIFNldFJ0bD5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGxcIiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBzaG93RGV0YWlscyAmJiAhc2lkZU1lbnVMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBweC01IHB5LTEgdy0xMDAgZmxleCBib3JkZXItYi0yIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHRpdGxlLXdpdGgtaWNvbiBjbGFzcz1cIi1teS0xLjVcIiBbY29udGV4dF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5XCIgW3Nob3dUaXRsZV09XCJmYWxzZVwiPjwvdGl0bGUtd2l0aC1pY29uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNlbnRlciBmbGV4IGZsZXgtY29sICAgZmxleC0xIGZsZXgtZ3Jvdy0wIHctNy8xMlwiICpuZ0lmPVwiIXNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdHJ1bmNhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRJdGVtLmVudGl0eT8ucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cInNlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbmFtZSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRJdGVtLmVudGl0eT8ucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ119fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3soKHNlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbGVuZ3RoJ10pIC8gKDEwMjQgKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAxMDI0KSkudG9GaXhlZCgyKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNQlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBkLWZsZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1iYXNlIHRleHQtZ3JheS01MDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtYm9sZFxyXG4gICAgICAgICAgICAgICAgICAgICBcIiAqbmdJZj1cInNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkSXRlbT8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6ICdsb2NrT3duZXJJZkxvY2tlZCcsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGN1cnNvci1wb2ludGVyICBteC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7bmFtZTogJ2NhblVwZGF0ZScsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0ZPTERFUlMuVVBEQVRFX0RFVEFJTFMnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5VcGRhdGVGcm9tU2lkZU1lbnUoKVwiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uIHRleHQtZ3JheS01MDBcIiAoY2xpY2spPVwiY2xvc2VEZXRhaWxzTWVudSgpXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidCVVRUT05TLkNMT1NFJyB8IHRyYW5zbGF0ZVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIGgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1keW5hbWljLXRhYnMgW3RhYnNdPVwibXlUYWJzXCI+PC9hcHAtZHluYW1pYy10YWJzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBmb250LWJvbGQgZC1mbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiICpuZ0lmPVwic2lkZU1lbnVMb2FkaW5nXCI+XHJcbiAgICAgICAge3sgXCJsb2FkaW5nXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQ29tbWVudHMgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjY29tbWVudHNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGgtZnVsbFwiPlxyXG4gICAgICAgIDxhcHAtY29tbWVudHMtZGFzaGxldCBbY29ycmVzcG9uZGVuY2VdPVwic2lkZU1lbnVGaWxlRGV0YWlsc1wiIFtlbnRpdHlJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiXHJcbiAgICAgICAgICAgIFtzaG93YWRkY29tbWVudF09XCJ0cnVlXCIgW3Jvd109XCJmYWxzZVwiPlxyXG4gICAgICAgIDwvYXBwLWNvbW1lbnRzLWRhc2hsZXQ+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gbXlMb2dGaWxlIC0tPlxyXG48bmctdGVtcGxhdGUgI2FjdGl2aXR5VGVtcGxhdGU+XHJcbiAgICA8IS0tIDxjdHMtdmlld2VyLWxvZyBbY29ycmVzcG9uZGVuY2VdPVwic2VsZWN0ZWRJdGVtLmVudGl0eVwiPjwvY3RzLXZpZXdlci1sb2c+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBtdC0zXCI+XHJcbiAgICAgICAgPGFwcC1hY3Rpdml0aWVzLWxvZyBbZG9jdW1lbnRJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiIFtkb2N1bWVudFRpdGxlXT1cInNlbGVjdGVkSXRlbS5lbnRpdHkudGl0bGVcIlxyXG4gICAgICAgICAgICBbZmlsZV09XCJzaWRlTWVudUZpbGVEZXRhaWxzXCI+PC9hcHAtYWN0aXZpdGllcy1sb2c+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGVybWlzc2lvbnNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgb3ZlcmZsb3ctYXV0byBweC0yIG10LTNcIj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zIFtzb3VyY2VQYWdlXT1cInNvdXJjZVBhZ2VcIlxyXG4gICAgICAgIFthbGxvd0FkZEFuZEJsb2NrXT1cImFsbG93QWRkQW5kQmxvY2tcIiAgW2RvY3VtZW50XT1cInNpZGVNZW51RmlsZURldGFpbHNcIlxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiPjwvYXBwLXBlcm1pc3Npb25zPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEZpbGVzIFRhYiAtLT5cclxuPG5nLXRlbXBsYXRlICNmaWxlc1RlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBvdmVyZmxvdy1hdXRvIHB4LTIgbXQtM1wiPlxyXG4gICAgICAgIDxjdHMtdmVyc2lvbnMgW2ZpbGVdPVwic2VsZWN0ZWRJdGVtLmVudGl0eVwiPjwvY3RzLXZlcnNpb25zPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIERldGFpbHMgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc1RlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cInBiLTIgbXQtMyBoLWZ1bGwgcHgtMiBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRpYy1kYXRhXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLlRJVExFX09OTFlcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZGM6dGl0bGVcIl0gfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcIkZPTERFUlMuREVTQ1JJUFRJT05fT05MWVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJkYzpkZXNjcmlwdGlvblwiXSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRk9MREVSUy5DUkVBVEVEX0FUXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgZHluYW1pY0Zvcm1EYXRhW1wiZGM6Y3JlYXRlZFwiXVxyXG4gICAgICAgICAgICAgICAgICAgIHwgbG9jYWxpemVkRGF0ZTogXCJkZCBNTU1NIHl5eXlcIjooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkxBU1RfTU9ESUZJRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBkeW5hbWljRm9ybURhdGFbXCJkYzptb2RpZmllZFwiXVxyXG4gICAgICAgICAgICAgICAgICAgIHwgbG9jYWxpemVkRGF0ZTogXCJkZCBNTU1NIHl5eXlcIjooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VwZXItZG9jdW1lbnQtZmllbGRzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50U3ViamVjdFwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9TVUJKRUNUXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRTdWJqZWN0XCJdID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFN1YmplY3RcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnROdW1iZXJcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuRE9DVU1FTlRfTlVNQkVSXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnROdW1iZXJcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50TnVtYmVyXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50UmVmZXJlbmNlTnVtYmVyXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRPQ1VNRU5UX1JFRl9OVU1CRVJcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIiBkaXI9XCJsdHJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFJlZmVyZW5jZU51bWJlclwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRSZWZlcmVuY2VOdW1iZXJcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6Z0RvY3VtZW50RGF0ZVwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9EQVRFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Z0RvY3VtZW50RGF0ZVwiXSA/IChkeW5hbWljRm9ybURhdGFbXCJnZG9jOmdEb2N1bWVudERhdGVcIl0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGl6ZWREYXRlOiBcImRkIE1NTU0geXl5eVwiOihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpKSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5jYXRlZ29yeSAhPT0ge30pJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNBVEVHT1JZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5ICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkgIT09IHt9KSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkuYXJhYmljTmFtZSA6IHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmFyYWJpY05hbWUpJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNBVEVHT1JZX1RZUEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmFyYWJpY05hbWUpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5jYXRlZ29yeVR5cGUuYXJhYmljTmFtZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmVuZ2xpc2hOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPScoc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuYXJhYmljTmFtZSknPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuTUFJTl9UT1BJQ1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAoc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuYXJhYmljTmFtZSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBzZWxlY3RlZEl0ZW0uZW50aXR5Lm1haW5Ub3BpYy5hcmFiaWNOYW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmFyYWJpY05hbWUpJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRPQ1VNRU5UX1RZUEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmFyYWJpY05hbWUpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5kb2N1bWVudFR5cGUuYXJhYmljTmFtZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmVuZ2xpc2hUaXRsZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6c2VjcmVjeUxldmVsXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLlNDUkVDWV9MRVZFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAndm9jYWJ1bGFyeS5WT0NfU2VjcmVjeUxldmVsLicgKyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnNlY3JlY3lMZXZlbFwiXSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmltcG9ydGFuY2VcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuSU1QT1JUQU5DRV9MRVZFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAndm9jYWJ1bGFyeS5WT0NfSW1wb3J0YW5jZS4nICsgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzppbXBvcnRhbmNlXCJdIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J3NlbGVjdGVkSXRlbS5lbnRpdHkuZGVwYXJ0bWVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ERVBBUlRNRU5UX05BTUVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtLmVudGl0eS5kZXBhcnRtZW50ID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5kZXBhcnRtZW50LmFyYWJpY05hbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uZW50aXR5LmRlcGFydG1lbnQuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZGVwYXJ0bWVudENvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuREVQQVJUTUVOVF9DT0RFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZGVwYXJ0bWVudENvZGVcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRlcGFydG1lbnRDb2RlXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuQUdFTkNZX0NBVEVHT1JZX0NPREVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl0gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmFnZW5jeUNhdGVnb3J5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9hciddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuQUdFTkNZX05BTUVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lOYW1lQ29kZVwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfYXInXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNhdGVnb3J5Q29kZVwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5DT1VOVFJZX0NBVEVHT1JZX0NPREVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlXCJdID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2FyJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDYXRlZ29yeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDb2RlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNPVU5UUllfTkFNRVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDb2RlXCJdID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9hciddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9lbiddKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuUkVNQVJLU1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkJZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTEwMCByb3VuZGVkLXhsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJkeW5hbWljRm9ybURhdGFbJ2RjOmNyZWF0b3InXVwiPjwvYXBwLXVzZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJkeW5hbWljRm9ybURhdGFbJ2RjOmNvbnRyaWJ1dG9ycyddLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcIkZPTERFUlMuQ09OVFJVQklUT1JTXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTEwMCByb3VuZGVkLXhsIG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBkeW5hbWljRm9ybURhdGFbJ2RjOmNvbnRyaWJ1dG9ycyddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInNoYXJlZExpc3RVc2VyLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1wic2hhcmUuc2hhcmVXaXRoXCIgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaXRlbXMtY2VudGVyIGJnLWdyYXktMTAwIHJvdW5kZWQteGwgbWItMlwiICpuZ0Zvcj1cImxldCB1c2VyIG9mIHNoYXJlZExpc3RVc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiICpuZ0lmPVwiZHluYW1pY0Zvcm0gJiYgZHluYW1pY0Zvcm1EYXRhXCI+XHJcbiAgICAgICAgICAgIDxhcHAtbXVsdGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlciBbZm9ybV09XCJkeW5hbWljRm9ybVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkeW5hbWljRm9ybURhdGFcIj48L2FwcC1tdWx0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLXdyYXBwZXJzIHJlbGF0aXZlIHB4LTAgcHktM1wiPlxyXG4gICAgICAgICAgICA8Y3RzLWNvcnJlc3BvbmRlbmNlLXRhZ3MgW2NvcnJlc3BvbmRlbmNlXT1cInNpZGVNZW51RmlsZURldGFpbHNcIiBbY3VzdG9tQ2xhc3NdPVwiJ3RhZ3MtZG1zLXdyYXBwZXInXCJcclxuICAgICAgICAgICAgICAgIFt1c2VQYXJhbXNdPVwidHJ1ZVwiIFthZGRDdXN0b21BcGlOYW1lXT1cIidTZXJ2aWNlcy5UYWdEb2N1bWVudCdcIlxyXG4gICAgICAgICAgICAgICAgW2RlbGV0ZUN1c3RvbUFwaU5hbWVdPVwiJ1NlcnZpY2VzLlVudGFnRG9jdW1lbnQnXCI+XHJcbiAgICAgICAgICAgIDwvY3RzLWNvcnJlc3BvbmRlbmNlLXRhZ3M+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBOEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZLLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBMEIsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV3ZILE1BQU0sT0FBTyxrQkFBa0I7SUFtQzdCLFlBQW1CLFFBQWtCLEVBQzNCLHFCQUE2QyxFQUM5QyxxQkFBNEMsRUFDM0Msa0JBQXNDLEVBQ3RDLGVBQWlDLEVBQ2pDLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxNQUFpQixFQUNqQixNQUF5QjtRQVJoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzNCLDBCQUFxQixHQUFyQixx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QjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHL0MsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUcvQyxtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdsRCxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJbkMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVwZGF0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBkYXRlLW1vZGFsL3VwZGF0ZS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dNYW5nbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZGlhbG9nLW1hbmdtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaGFyZWREb2NzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9zaGFyZWQtZG9jcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICdmb3JtaW9qcyc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlVmFsdWVzLCBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWdzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N0cy10YWdzL3NlcnZpY2VzL3RhZ3MtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2lkZXBhbmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zaWRlcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlcGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLCBPbkRlc3Ryb3l7XHJcbiAgQFZpZXdDaGlsZCgnZGV0YWlsc1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBkZXRhaWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnY29tbWVudHNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29tbWVudHNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdhY3Rpdml0eVRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBhY3Rpdml0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3Blcm1pc3Npb25zVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHBlcm1pc3Npb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnZmlsZXNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgZmlsZXNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW06IGFueTtcclxuICBASW5wdXQoKSBtZW51T3BlbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNvdXJjZVBhZ2UgPSAnZmlsZXMnO1xyXG4gIEBJbnB1dCgpIGFsbG93QWRkQW5kQmxvY2sgPSB0cnVlO1xyXG4gIHNpZGVNZW51TG9hZGluZyA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBvbkNsb3NlU2lkZU1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGR5bmFtaWNGb3JtOyAvLyBjb250YWluIGR5bmFtaWMgZm9ybVxyXG4gIGR5bmFtaWNGb3JtRGF0YTsgLy8gY29udGFpbiBhbGwgZmlsZSBkYXRhIGluY2x1ZGluZyBkeW5hbWljIGZvcm0gZGF0YVxyXG4gIHJ0bEVuYWJsZWQgPSBmYWxzZTtcclxuICBpc0FyYWJpYyA9IHRydWU7XHJcbiAgc2lkZU1lbnVGaWxlRGV0YWlsczsgLy8gaG9sZCBkYXRhIG9mIGRhY3VtZW50IHRvIGJlIHNob3duIGluIHNpZGUgbWVudSBkZXRhaWxzXHJcbiAgc2hvd0RldGFpbHMgPSBmYWxzZTtcclxuICBteVRhYnMgPSBbXTtcclxuICBtdWx0aVNlbGVjdGVka2V5czogc3RyaW5nW107XHJcbiAgbGFuZ3VhZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICB0YWdzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgc2hhcmVkU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgc2hhcmVkRGF0YSA9IFtdO1xyXG4gIHNoYXJlZExpc3QgPSBbXTtcclxuICBzaGFyZWRMaXN0VXNlciA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZVNlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nTWFuZ21lbnRTZXJ2aWNlOiBEaWFsb2dNYW5nbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGR5bmFtaWNGb3JtU2VydmljZTogRHluYW1pY0Zvcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRhZ3NBcGlTZXJ2aWNlOiBUYWdzQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBzaGFyZWQ6IFNoYXJlZERvY3NTZXJ2aWNlLCkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1lbnVPcGVuKSB7XHJcbiAgICAgIHRoaXMub3BlblNpZGVNZW51RGV0YWlscygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm15VGFicyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnRGV0YWlscycsXHJcbiAgICAgICAgaWNvbjogJ3N1YnRpdGxlcycsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuZGV0YWlsc1RlbXBsYXRlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdjb21tZW50cycsXHJcbiAgICAgICAgaWNvbjogJ3RleHRzbXMnLFxyXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbW1lbnRzVGVtcGxhdGUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ3Blcm1pc3Npb25zJyxcclxuICAgICAgICBpY29uOiAnbG9jaycsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMucGVybWlzc2lvbnNUZW1wbGF0ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAnYWN0aXZpdHknLFxyXG4gICAgICAgIGljb246ICdsaXN0X2FsdCcsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuYWN0aXZpdHlUZW1wbGF0ZSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgICBpZiAodGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2VcclxuICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChsb2NhbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMucnRsRW5hYmxlZCA9IGxvY2FsZSA9PT0gJ2FyJyA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMudGFnc1N1YnNjcmlwdGlvbiA9IHRoaXMudGFnc0FwaVNlcnZpY2UuZ2V0VXBkYXRlZEZpbGUuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2VcclxuICAgICAgICAgIC5nZXREb2N1bWVudCh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudWlkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZU1lbnVGaWxlRGV0YWlscyA9IHJlcztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pc0FyYWJpYyQuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0FyYWJpYyA9IHJlcztcclxuXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvcGVuVXBkYXRlRnJvbVNpZGVNZW51KCkge1xyXG4gICAgdGhpcy5jbG9zZURldGFpbHNNZW51KCk7XHJcbiAgICB0aGlzLm9wZW5VcGRhdGVNb2RhbCgpO1xyXG4gIH1cclxuXHJcbiAgb3BlblVwZGF0ZU1vZGFsKCkge1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihVcGRhdGVNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzQwJScsXHJcbiAgICAgIGhlaWdodDogJzcwJScsXHJcbiAgICAgIG1heFdpZHRoOiAnYXV0bycsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICd3YXRjaGVyLWRpYWxvZy1jb250YWluZXInLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLFxyXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS50eXBlLFxyXG4gICAgICAgIGNvZGU6IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS5wcm9wZXJ0aWVzWydnZG9jOmRvY3VtZW50VHlwZUNvZGUnXSA/IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS5wcm9wZXJ0aWVzWydnZG9jOmRvY3VtZW50VHlwZUNvZGUnXSA6IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS50eXBlLFxyXG4gICAgICAgIGlzRGlyZWN0b3J5OiB0aGlzLnNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeSxcclxuICAgICAgfSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tb3BlbiBmaWxlIHNpZGUgbWVudSBkZXRhaWxzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBjdXN0b21lSGVhZGVyID1cclxuICAgICdsb2NrLGRjOmNyZWF0b3IsZGM6Y29udHJpYnV0b3JzLGdkb2M6Y291bnRyeUNhdGVnb3J5Q29kZSxnZG9jOmNvdW50cnlDb2RlLGdkb2M6YWdlbmN5TmFtZUNvZGUsZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGUnO1xyXG5cclxuICBvcGVuU2lkZU1lbnVEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5zaWRlTWVudUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zaWRlTWVudUZpbGVEZXRhaWxzID0ge307XHJcbiAgICB0aGlzLnNoYXJlZExpc3RVc2VyID0gW107XHJcbiAgICAvLyB0aGlzLnNob3dEZXRhaWxzID0gZmFsc2U7IC8vIGlmIGl0IHdhcyBvcGVuIGNsb3NlIGl0IHRoZW4gb3BlbiBpdCBhZ2FpbiB0byBhbGxvdyB0YWJzIHRvIGJlIHJlcmVuZHJlZFxyXG4gICAgdGhpcy5keW5hbWljRm9ybSA9IG51bGw7XHJcbiAgICAvLyBpZiAodGhpcy5zZWxlY3RlZEl0ZW0uaXNEaXJlY3RvcnkgPT09IGZhbHNlKSB7XHJcbiAgICB0aGlzLmR5bmFtaWNGb3JtU2VydmljZVxyXG4gICAgICAuZ2V0RHluYW1pY0Zvcm0odGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddID8gdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddIDogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGUpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzWydjb21wb25lbnRzJ10gJiYgcmVzWydjb21wb25lbnRzJ10ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybSA9IHJlcztcclxuICAgICAgICAgIGxldCBwcmVmaXggPSByZXMucHJlZml4O1xyXG4gICAgICAgICAgVXRpbHMuZWFjaENvbXBvbmVudChyZXMuY29tcG9uZW50cywgKGNvbXApID0+IHtcclxuICAgICAgICAgICAgaWYgKGNvbXAudHlwZSA9PT0gJ3VzZXJTZWxlY3RvcicpIHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnVzZXJTZWxlY3RvcktleXMucHVzaChjb21wLmZpeGVkS2V5KTtcclxuICAgICAgICAgICAgICBsZXQgY29tcFByZWZpeCA9IHByZWZpeFtjb21wLmZpeGVkS2V5XVxyXG4gICAgICAgICAgICAgICAgPyBwcmVmaXhbY29tcC5maXhlZEtleV1cclxuICAgICAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbXBQcmVmaXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciA9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciArXHJcbiAgICAgICAgICAgICAgICAgICcsJyArXHJcbiAgICAgICAgICAgICAgICAgIGNvbXBQcmVmaXggK1xyXG4gICAgICAgICAgICAgICAgICAnOicgK1xyXG4gICAgICAgICAgICAgICAgICBjb21wLmZpeGVkS2V5O1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVIZWFkZXIgPVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVIZWFkZXIgKyAnLCcgKyBjb21wLmZpeGVkS2V5O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZVxyXG4gICAgICAgICAgLmdldERvY3VtZW50KHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWQsIHtcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6IHRoaXMuY3VzdG9tZUhlYWRlcixcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaWRlTWVudUZpbGVEZXRhaWxzID0gcmVzO1xyXG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtRGF0YSA9IHJlcz8ucHJvcGVydGllcztcclxuICAgICAgICAgICAgdGhpcy5zaG93RGV0YWlscyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZU1lbnVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmdldFNoYXJlc0J5TWUoKTtcclxuXHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICB0aGlzLnNpZGVNZW51RmlsZURldGFpbHMgPSB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHlcclxuICAgIC8vICAgICB0aGlzLnNob3dEZXRhaWxzID0gdHJ1ZVxyXG4gICAgLy8gICB9LCAxMDAwKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGNsb3NlRGV0YWlsc01lbnUoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gZmFsc2U7XHJcbiAgICB0aGlzLnNpZGVNZW51TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkNsb3NlU2lkZU1lbnUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY2xvc2VEZXRhaWxzU2lkZU1lbnUoZXZlbnQpIHtcclxuICAvLyAgIGlmICghdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kaXNhYmxlQ2xpY2tPdXRTaWRlKSB7XHJcbiAgLy8gICAgIGlmIChcclxuICAvLyAgICAgICBldmVudC5pZCAhPT0gJ3NlZV9kZXRhaWxzJyAmJlxyXG4gIC8vICAgICAgICF0aGlzLmNoZWNrRm9yQ2xhc3MoZXZlbnQuY2xhc3NOYW1lKVxyXG4gIC8vICAgICApIHtcclxuICAvLyAgICAgICB0aGlzLnNob3dEZXRhaWxzID0gZmFsc2U7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGNoZWNrRm9yQ2xhc3MoY2xhc3NOYW1lKSB7XHJcbiAgICBsZXQgY2xhc3NlcyA9IFtcclxuICAgICAgJ2RldGFpbGVkLW1lbnUnLFxyXG4gICAgICAnbmctdGFnLWxhYmVsJyxcclxuICAgICAgJ25nLW9wdGlvbi1sYWJlbCcsXHJcbiAgICAgICduZy1zdGFyLWluc2VydGVkJyxcclxuICAgIF07XHJcbiAgICBsZXQgY2xhc3NGb3VuZGVkID0gZmFsc2U7XHJcbiAgICBjbGFzc2VzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoY2xhc3NOYW1lLmluY2x1ZGVzKGl0ZW0pKSB7XHJcbiAgICAgICAgY2xhc3NGb3VuZGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2xhc3NGb3VuZGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2hhcmVzQnlNZSgpIHtcclxuICAgIHRoaXMuc2hhcmVkU3ViID0gdGhpcy5zaGFyZWQuZ2V0U2hhcmVzQnlNZSh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudWlkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zaGFyZWRMaXN0VXNlciA9IHJlcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGFnc1N1YnNjcmlwdGlvbiA/IHRoaXMudGFnc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogbnVsbDtcclxuICAgIHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24gPyB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiBudWxsO1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2lkZS1tZW51LWRldGFpbHNcIiBTZXRSdGw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgc2hvd0RldGFpbHMgJiYgIXNpZGVNZW51TG9hZGluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcHgtNSBweS0xIHctMTAwIGZsZXggYm9yZGVyLWItMiBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHRpdGxlLXdpdGgtaWNvbiBjbGFzcz1cIi1teS0xLjVcIiBbY29udGV4dF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5XCIgW3Nob3dUaXRsZV09XCJmYWxzZVwiPjwvdGl0bGUtd2l0aC1pY29uPiAtLT5cclxuICAgICAgICAgICAgICAgIDxhcHAtZGlzcGxheS1zdWl0YWJsZS1pY29uIFtkYXRhXT1cInNlbGVjdGVkSXRlbVwiIFtzaXplXT1cIic0MHB4J1wiPjwvYXBwLWRpc3BsYXktc3VpdGFibGUtaWNvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jZW50ZXIgZmxleCBmbGV4LWNvbCAgIGZsZXgtMSBmbGV4LWdyb3ctMCB3LTcvMTJcIiAqbmdJZj1cIiFzZWxlY3RlZEl0ZW0uaXNEaXJlY3RvcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYXNlIHRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRydW5jYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbmFtZSddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5Py5wcm9wZXJ0aWVzPy5bJ2ZpbGU6Y29udGVudCddPy5bJ25hbWUnXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbmFtZSddfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7KChzZWxlY3RlZEl0ZW0uZW50aXR5Py5wcm9wZXJ0aWVzPy5bJ2ZpbGU6Y29udGVudCddPy5bJ2xlbmd0aCddKSAvICgxMDI0ICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgMTAyNCkpLnRvRml4ZWQoMikgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgTUJcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgZC1mbGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy1jZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYmFzZSB0ZXh0LWdyYXktNTAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBmb250LWJvbGRcclxuICAgICAgICAgICAgICAgICAgICAgXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0uaXNEaXJlY3RvcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW0/Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cIntuYW1lOiAnbG9ja093bmVySWZMb2NrZWQnLCBlbnRpdHk6IHNlbGVjdGVkSXRlbS5lbnRpdHl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBjdXJzb3ItcG9pbnRlciAgbXgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwie25hbWU6ICdjYW5VcGRhdGUnLCBlbnRpdHk6IHNlbGVjdGVkSXRlbS5lbnRpdHl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdGT0xERVJTLlVQREFURV9ERVRBSUxTJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuVXBkYXRlRnJvbVNpZGVNZW51KClcIj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2xvc2UtaWNvbiB0ZXh0LWdyYXktNTAwXCIgKGNsaWNrKT1cImNsb3NlRGV0YWlsc01lbnUoKVwiXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInQlVUVE9OUy5DTE9TRScgfCB0cmFuc2xhdGVcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR5bmFtaWMtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBoLWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZHluYW1pYy10YWJzIFt0YWJzXT1cIm15VGFic1wiPjwvYXBwLWR5bmFtaWMtdGFicz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgZm9udC1ib2xkIGQtZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIiAqbmdJZj1cInNpZGVNZW51TG9hZGluZ1wiPlxyXG4gICAgICAgIHt7IFwibG9hZGluZ1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIENvbW1lbnRzIC0tPlxyXG48bmctdGVtcGxhdGUgI2NvbW1lbnRzVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBoLWZ1bGxcIj5cclxuICAgICAgICA8YXBwLWNvbW1lbnRzLWRhc2hsZXQgW2NvcnJlc3BvbmRlbmNlXT1cInNpZGVNZW51RmlsZURldGFpbHNcIiBbZW50aXR5SWRdPVwic2VsZWN0ZWRJdGVtLmVudGl0eS51aWRcIlxyXG4gICAgICAgICAgICBbc2hvd2FkZGNvbW1lbnRdPVwidHJ1ZVwiIFtyb3ddPVwiZmFsc2VcIj5cclxuICAgICAgICA8L2FwcC1jb21tZW50cy1kYXNobGV0PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIG15TG9nRmlsZSAtLT5cclxuPG5nLXRlbXBsYXRlICNhY3Rpdml0eVRlbXBsYXRlPlxyXG4gICAgPCEtLSA8Y3RzLXZpZXdlci1sb2cgW2NvcnJlc3BvbmRlbmNlXT1cInNlbGVjdGVkSXRlbS5lbnRpdHlcIj48L2N0cy12aWV3ZXItbG9nPiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgbXQtM1wiPlxyXG4gICAgICAgIDxhcHAtYWN0aXZpdGllcy1sb2cgW2RvY3VtZW50SWRdPVwic2VsZWN0ZWRJdGVtLmVudGl0eS51aWRcIiBbZG9jdW1lbnRUaXRsZV09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnRpdGxlXCJcclxuICAgICAgICAgICAgW2ZpbGVdPVwic2lkZU1lbnVGaWxlRGV0YWlsc1wiPjwvYXBwLWFjdGl2aXRpZXMtbG9nPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Blcm1pc3Npb25zVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaC1mdWxsIG92ZXJmbG93LWF1dG8gcHgtMiBtdC0zXCI+XHJcbiAgICAgICAgPGFwcC1wZXJtaXNzaW9ucyBbc291cmNlUGFnZV09XCJzb3VyY2VQYWdlXCJcclxuICAgICAgICBbYWxsb3dBZGRBbmRCbG9ja109XCJhbGxvd0FkZEFuZEJsb2NrXCIgIFtkb2N1bWVudF09XCJzaWRlTWVudUZpbGVEZXRhaWxzXCJcclxuICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwic2VsZWN0ZWRJdGVtLmVudGl0eS51aWRcIj48L2FwcC1wZXJtaXNzaW9ucz5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBGaWxlcyBUYWIgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZmlsZXNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgb3ZlcmZsb3ctYXV0byBweC0yIG10LTNcIj5cclxuICAgICAgICA8Y3RzLXZlcnNpb25zIFtmaWxlXT1cInNlbGVjdGVkSXRlbS5lbnRpdHlcIj48L2N0cy12ZXJzaW9ucz5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBEZXRhaWxzIC0tPlxyXG48bmctdGVtcGxhdGUgI2RldGFpbHNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJwYi0yIG10LTMgaC1mdWxsIHB4LTIgb3ZlcmZsb3ctYXV0b1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0aWMtZGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRk9MREVSUy5USVRMRV9PTkxZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImRjOnRpdGxlXCJdIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkRFU0NSSVBUSU9OX09OTFlcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZGM6ZGVzY3JpcHRpb25cIl0gfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcIkZPTERFUlMuQ1JFQVRFRF9BVFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgIGR5bmFtaWNGb3JtRGF0YVtcImRjOmNyZWF0ZWRcIl1cclxuICAgICAgICAgICAgICAgICAgICB8IGxvY2FsaXplZERhdGU6IFwiZGQgTU1NTSB5eXl5XCI6KGlzQXJhYmljPyAnYXItQVInIDogJ2VuLVVTJylcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRk9MREVSUy5MQVNUX01PRElGSUVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgZHluYW1pY0Zvcm1EYXRhW1wiZGM6bW9kaWZpZWRcIl1cclxuICAgICAgICAgICAgICAgICAgICB8IGxvY2FsaXplZERhdGU6IFwiZGQgTU1NTSB5eXl5XCI6KGlzQXJhYmljPyAnYXItQVInIDogJ2VuLVVTJylcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cGVyLWRvY3VtZW50LWZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFN1YmplY3RcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuRE9DVU1FTlRfU1VCSkVDVFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50U3ViamVjdFwiXSA/IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRTdWJqZWN0XCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50TnVtYmVyXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRPQ1VNRU5UX05VTUJFUlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50TnVtYmVyXCJdID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudE51bWJlclwiXSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFJlZmVyZW5jZU51bWJlclwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9SRUZfTlVNQkVSXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCIgZGlyPVwibHRyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRSZWZlcmVuY2VOdW1iZXJcIl0gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50UmVmZXJlbmNlTnVtYmVyXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmdEb2N1bWVudERhdGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuRE9DVU1FTlRfREFURVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmdEb2N1bWVudERhdGVcIl0gPyAoZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpnRG9jdW1lbnREYXRlXCJdIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxpemVkRGF0ZTogXCJkZCBNTU1NIHl5eXlcIjooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKSkgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9JyhzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5ICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkgIT09IHt9KSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5DQVRFR09SWVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAoc2VsZWN0ZWRJdGVtLmVudGl0eS5jYXRlZ29yeSAmJiBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5ICE9PSB7fSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5LmFyYWJpY05hbWUgOiBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5LmVuZ2xpc2hOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9JyhzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5VHlwZSAmJiBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5VHlwZS5hcmFiaWNOYW1lKSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5DQVRFR09SWV9UWVBFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5VHlwZSAmJiBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5VHlwZS5hcmFiaWNOYW1lKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmFyYWJpY05hbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5VHlwZS5lbmdsaXNoTmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkubWFpblRvcGljICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkubWFpblRvcGljLmFyYWJpY05hbWUpJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLk1BSU5fVE9QSUNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKHNlbGVjdGVkSXRlbS5lbnRpdHkubWFpblRvcGljICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkubWFpblRvcGljLmFyYWJpY05hbWUpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuYXJhYmljTmFtZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5lbnRpdHkubWFpblRvcGljLmVuZ2xpc2hOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9JyhzZWxlY3RlZEl0ZW0uZW50aXR5LmRvY3VtZW50VHlwZSAmJiBzZWxlY3RlZEl0ZW0uZW50aXR5LmRvY3VtZW50VHlwZS5hcmFiaWNOYW1lKSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9UWVBFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChzZWxlY3RlZEl0ZW0uZW50aXR5LmRvY3VtZW50VHlwZSAmJiBzZWxlY3RlZEl0ZW0uZW50aXR5LmRvY3VtZW50VHlwZS5hcmFiaWNOYW1lKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmFyYWJpY05hbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uZW50aXR5LmRvY3VtZW50VHlwZS5lbmdsaXNoVGl0bGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOnNlY3JlY3lMZXZlbFwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5TQ1JFQ1lfTEVWRUxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3ZvY2FidWxhcnkuVk9DX1NlY3JlY3lMZXZlbC4nICsgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpzZWNyZWN5TGV2ZWxcIl0gfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzppbXBvcnRhbmNlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLklNUE9SVEFOQ0VfTEVWRUxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3ZvY2FidWxhcnkuVk9DX0ltcG9ydGFuY2UuJyArIGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6aW1wb3J0YW5jZVwiXSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdzZWxlY3RlZEl0ZW0uZW50aXR5LmRlcGFydG1lbnQnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuREVQQVJUTUVOVF9OQU1FXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkSXRlbS5lbnRpdHkuZGVwYXJ0bWVudCA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IHNlbGVjdGVkSXRlbS5lbnRpdHkuZGVwYXJ0bWVudC5hcmFiaWNOYW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLmVudGl0eS5kZXBhcnRtZW50LmVuZ2xpc2hOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRlcGFydG1lbnRDb2RlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRFUEFSVE1FTlRfQ09ERVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRlcGFydG1lbnRDb2RlXCJdID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkZXBhcnRtZW50Q29kZVwiXSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5Q2F0ZWdvcnlDb2RlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkFHRU5DWV9DQVRFR09SWV9DT0RFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5Q2F0ZWdvcnlDb2RlXCJdID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfYXInXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5Q2F0ZWdvcnlDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2VuJ10pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmFnZW5jeU5hbWVDb2RlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkFHRU5DWV9OQU1FXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl0gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmFnZW5jeU5hbWVDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2FyJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmFnZW5jeU5hbWVDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2VuJ10pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDYXRlZ29yeUNvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuQ09VTlRSWV9DQVRFR09SWV9DT0RFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNhdGVnb3J5Q29kZVwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNhdGVnb3J5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9hciddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2VuJ10pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5DT1VOVFJZX05BTUVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfYXInXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpyZW1hcmtzXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLlJFTUFSS1NcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpyZW1hcmtzXCJdID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpyZW1hcmtzXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRk9MREVSUy5CWVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc20gZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBpdGVtcy1jZW50ZXIgYmctZ3JheS0xMDAgcm91bmRlZC14bFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXVzZXIgW3VzZXJdPVwiZHluYW1pY0Zvcm1EYXRhWydkYzpjcmVhdG9yJ11cIj48L2FwcC11c2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPVwiZHluYW1pY0Zvcm1EYXRhWydkYzpjb250cmlidXRvcnMnXS5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkNPTlRSVUJJVE9SU1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBpdGVtcy1jZW50ZXIgYmctZ3JheS0xMDAgcm91bmRlZC14bCBtYi0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHVzZXIgb2YgZHluYW1pY0Zvcm1EYXRhWydkYzpjb250cmlidXRvcnMnXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXVzZXIgW3VzZXJdPVwidXNlclwiPjwvYXBwLXVzZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJzaGFyZWRMaXN0VXNlci5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcInNoYXJlLnNoYXJlV2l0aFwiIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTEwMCByb3VuZGVkLXhsIG1iLTJcIiAqbmdGb3I9XCJsZXQgdXNlciBvZiBzaGFyZWRMaXN0VXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXVzZXIgW3VzZXJdPVwidXNlclwiPjwvYXBwLXVzZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTVcIiAqbmdJZj1cImR5bmFtaWNGb3JtICYmIGR5bmFtaWNGb3JtRGF0YVwiPlxyXG4gICAgICAgICAgICA8YXBwLW11bHRpcGxlLWR5bmFtaWMtZm9ybS12aWV3ZXIgW2Zvcm1dPVwiZHluYW1pY0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwiZHluYW1pY0Zvcm1EYXRhXCI+PC9hcHAtbXVsdGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFncy13cmFwcGVycyByZWxhdGl2ZSBweC0wIHB5LTNcIj5cclxuICAgICAgICAgICAgPGN0cy1jb3JyZXNwb25kZW5jZS10YWdzIFtjb3JyZXNwb25kZW5jZV09XCJzaWRlTWVudUZpbGVEZXRhaWxzXCIgW2N1c3RvbUNsYXNzXT1cIid0YWdzLWRtcy13cmFwcGVyJ1wiXHJcbiAgICAgICAgICAgICAgICBbdXNlUGFyYW1zXT1cInRydWVcIiBbYWRkQ3VzdG9tQXBpTmFtZV09XCInU2VydmljZXMuVGFnRG9jdW1lbnQnXCJcclxuICAgICAgICAgICAgICAgIFtkZWxldGVDdXN0b21BcGlOYW1lXT1cIidTZXJ2aWNlcy5VbnRhZ0RvY3VtZW50J1wiPlxyXG4gICAgICAgICAgICA8L2N0cy1jb3JyZXNwb25kZW5jZS10YWdzPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|