survey-creator-angular
Version:
Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.
61 lines • 18 kB
JavaScript
import { Component, Input } from "@angular/core";
import { CreatorModelComponent } from "../creator-model.component";
import { AngularComponentFactory } from "survey-angular-ui";
import { QuestionRatingAdornerViewModel } from "survey-creator-core";
import { QuestionDesignerComponent } from "../question.component";
import * as i0 from "@angular/core";
import * as i1 from "survey-angular-ui";
import * as i2 from "../question-banner.component";
import * as i3 from "@angular/common";
export class QuestionRatingDesignerComponent extends QuestionDesignerComponent {
constructor() {
super(...arguments);
this.adornerComponent = "";
}
}
QuestionRatingDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionRatingDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
QuestionRatingDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionRatingDesignerComponent, selector: "svc-rating-question", usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"adorner\" class=\"svc-question__adorner\" [class]=\"adorner.rootCss()\" (dblclick)=\"adorner.dblclick($event)\"\n (mouseover)=\"adorner.hover($event, $event.currentTarget)\" (mouseleave)=\"adorner.hover($event, $event.currentTarget)\"\n [attr.data-sv-drop-target-survey-element]=\"adorner.element.name || null\" #container>\n <div *ngIf=\"adorner.showHiddenTitle\" [class]=\"adorner.cssCollapsedHiddenHeader\">\n <sv-ng-element-title *ngIf=\"!!model.hasTitle\" [element]=\"model\"></sv-ng-element-title>\n <div *ngIf=\"!model.hasTitle\" [class]=\"adorner.cssCollapsedHiddenTitle\">\n <span class=\"svc-fake-title\">{{model.name}}</span>\n </div>\n </div>\n <div [class]=\"adorner.css()\" [key2click]=\"{ disableTabStop: true }\" (click)=\"adorner.select(adorner, $event)\">\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--left\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--right\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--top\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--bottom\"></div>\n <div *ngIf=\"adorner.allowDragging\" class=\"svc-question__drag-area\" (pointerdown)=\"adorner.onPointerDown($event)\">\n <svg class=\"svc-question__drag-element\" [iconName]=\"'icon-drag-area-indicator_24x16'\" [size]=\"'auto'\"\n sv-ng-svg-icon></svg>\n <div class=\"svc-question__top-actions\">\n <sv-action-bar [model]=\"adorner.topActionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"adorner.needToRenderContent\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n <div *ngIf=\"adorner.isEmptyElement && !showPlaceholderComponent\" class=\"svc-panel__placeholder_frame-wrapper\">\n <div class=\"svc-panel__placeholder_frame\">\n <div class=\"svc-panel__placeholder\">{{ adorner.placeholderText }}</div>\n </div>\n </div>\n <ng-template *ngIf=\"adorner.isEmptyElement && !!showPlaceholderComponent\"\n [component]=\"{ name: placeholderComponent, data: placeholderComponentData }\">\n </ng-template>\n <ng-template *ngIf=\"adornerComponent\"\n [component]=\"{ name: adornerComponent, data: { adorner: adorner, question: model } }\">\n </ng-template>\n <svc-question-banner *ngIf=\"adorner.isBannerShowing\" [model]=\"adorner.createBannerParams()\">\n </svc-question-banner>\n <div class=\"svc-question__content-actions\" (focusin)=\"adorner.select(adorner, $event)\">\n <sv-action-bar [model]=\"adorner.actionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ElementTitleComponent, selector: "sv-ng-element-title", inputs: ["element"] }, { type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i2.QuestionBannerComponent, selector: "svc-question-banner", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionRatingDesignerComponent, decorators: [{
type: Component,
args: [{
selector: "svc-rating-question",
templateUrl: "../question.component.html",
styles: [":host { display: none; }"]
}]
}] });
AngularComponentFactory.Instance.registerComponent("svc-rating-question", QuestionRatingDesignerComponent);
export class QuestionRatingAdornerDesignerComponent extends CreatorModelComponent {
createModel() {
if (this.componentData) {
this.adorner = new QuestionRatingAdornerViewModel(this.componentData.data, this.componentData.model, null);
}
}
getPropertiesToTrack() {
return ["model", "creator"];
}
getModel() {
return this.adorner;
}
ngOnDestroy() {
super.ngOnDestroy();
this.adorner.dispose();
}
}
QuestionRatingAdornerDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionRatingAdornerDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
QuestionRatingAdornerDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionRatingAdornerDesignerComponent, selector: "svc-rating-question-content", inputs: { componentName: "componentName", componentData: "componentData", contentTempl: "contentTempl" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-rating-question-content\">\n <div [class]=\"adorner.controlsClassNames\">\n <svg *ngIf=\"adorner.allowRemove\" [iconName]=\"'icon-remove_16x16'\" [size]=\"'auto'\" [key2click] (click)=\"adorner.removeItem(adorner)\"\n [class]=\"adorner.removeClassNames\" [attr.title]=\"adorner.removeTooltip\" [attr.aria-label]=\"adorner.removeTooltip\" sv-ng-svg-icon></svg>\n <svg *ngIf=\"adorner.allowAdd\" [iconName]=\"'icon-add_16x16'\" [size]=\"'auto'\" [key2click] (click)=\"adorner.addItem(adorner)\"\n [class]=\"adorner.addClassNames\" [attr.title]=\"adorner.addTooltip\" [attr.aria-label]=\"adorner.addTooltip\"sv-ng-svg-icon></svg>\n </div>\n <ng-container *ngTemplateOutlet=\"contentTempl\"></ng-container>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionRatingAdornerDesignerComponent, decorators: [{
type: Component,
args: [{
selector: "svc-rating-question-content",
templateUrl: "./question-rating.component.html",
styles: [":host { display: none; }"]
}]
}], propDecorators: { componentName: [{
type: Input
}], componentData: [{
type: Input
}], contentTempl: [{
type: Input
}] } });
AngularComponentFactory.Instance.registerComponent("svc-rating-question-content", QuestionRatingAdornerDesignerComponent);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tcmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG9ybmVycy9xdWVzdGlvbi1yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL3F1ZXN0aW9uLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vc3JjL2Fkb3JuZXJzL3F1ZXN0aW9uLXJhdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBZ0MsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRixPQUFPLEVBQXNCLDhCQUE4QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBUWxFLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSx5QkFBeUI7SUFMOUU7O1FBTWtCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztLQUN2Qzs7NkhBRlksK0JBQStCO2lIQUEvQiwrQkFBK0Isa0ZDWjVDLCsxRkEyQ2M7NEZEL0JELCtCQUErQjtrQkFMM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDckM7O0FBS0QsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLCtCQUErQixDQUFDLENBQUM7QUFPM0csTUFBTSxPQUFPLHNDQUF1QyxTQUFRLHFCQUFxRDtJQU1yRyxXQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQU8sSUFBSSxDQUFDLENBQUM7U0FDakg7SUFDSCxDQUFDO0lBQ1Msb0JBQW9CO1FBQzVCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNTLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7O29JQXBCVSxzQ0FBc0M7d0hBQXRDLHNDQUFzQyxvTUV2Qm5ELG15QkFVYzs0RkZhRCxzQ0FBc0M7a0JBTGxELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsV0FBVyxFQUFFLGtDQUFrQztvQkFDL0MsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOzhCQUVVLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLOztBQW9CUix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsNkJBQTZCLEVBQUUsc0NBQXNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ3JlYXRvck1vZGVsQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NyZWF0b3ItbW9kZWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSwgRW1iZWRkZWRWaWV3Q29udGVudENvbXBvbmVudCB9IGZyb20gXCJzdXJ2ZXktYW5ndWxhci11aVwiO1xuaW1wb3J0IHsgU3VydmV5Q3JlYXRvck1vZGVsLCBRdWVzdGlvblJhdGluZ0Fkb3JuZXJWaWV3TW9kZWwgfSBmcm9tIFwic3VydmV5LWNyZWF0b3ItY29yZVwiO1xuaW1wb3J0IHsgUXVlc3Rpb25EZXNpZ25lckNvbXBvbmVudCB9IGZyb20gXCIuLi9xdWVzdGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IFF1ZXN0aW9uUmF0aW5nTW9kZWwgfSBmcm9tIFwic3VydmV5LWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy1yYXRpbmctcXVlc3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi4vcXVlc3Rpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25SYXRpbmdEZXNpZ25lckNvbXBvbmVudCBleHRlbmRzIFF1ZXN0aW9uRGVzaWduZXJDb21wb25lbnQge1xuICBwdWJsaWMgb3ZlcnJpZGUgYWRvcm5lckNvbXBvbmVudCA9IFwiXCI7XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXJhdGluZy1xdWVzdGlvblwiLCBRdWVzdGlvblJhdGluZ0Rlc2lnbmVyQ29tcG9uZW50KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN2Yy1yYXRpbmctcXVlc3Rpb24tY29udGVudFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3F1ZXN0aW9uLXJhdGluZy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogbm9uZTsgfVwiXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvblJhdGluZ0Fkb3JuZXJEZXNpZ25lckNvbXBvbmVudCBleHRlbmRzIENyZWF0b3JNb2RlbENvbXBvbmVudDxRdWVzdGlvblJhdGluZ0Fkb3JuZXJWaWV3TW9kZWw+IHtcbiAgQElucHV0KCkgY29tcG9uZW50TmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY29tcG9uZW50RGF0YSE6IGFueTtcbiAgQElucHV0KCkgY29udGVudFRlbXBsITogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIGFkb3JuZXIhOiBRdWVzdGlvblJhdGluZ0Fkb3JuZXJWaWV3TW9kZWw7XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudERhdGEpIHtcbiAgICAgIHRoaXMuYWRvcm5lciA9IG5ldyBRdWVzdGlvblJhdGluZ0Fkb3JuZXJWaWV3TW9kZWwodGhpcy5jb21wb25lbnREYXRhLmRhdGEsIHRoaXMuY29tcG9uZW50RGF0YS5tb2RlbCwgPGFueT5udWxsKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldFByb3BlcnRpZXNUb1RyYWNrKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1wibW9kZWxcIiwgXCJjcmVhdG9yXCJdO1xuICB9XG4gIHByb3RlY3RlZCBnZXRNb2RlbCgpOiBRdWVzdGlvblJhdGluZ0Fkb3JuZXJWaWV3TW9kZWwge1xuICAgIHJldHVybiB0aGlzLmFkb3JuZXI7XG4gIH1cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmFkb3JuZXIuZGlzcG9zZSgpO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLXJhdGluZy1xdWVzdGlvbi1jb250ZW50XCIsIFF1ZXN0aW9uUmF0aW5nQWRvcm5lckRlc2lnbmVyQ29tcG9uZW50KTtcblxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cImFkb3JuZXJcIiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fYWRvcm5lclwiIFtjbGFzc109XCJhZG9ybmVyLnJvb3RDc3MoKVwiIChkYmxjbGljayk9XCJhZG9ybmVyLmRibGNsaWNrKCRldmVudClcIlxuICAgIChtb3VzZW92ZXIpPVwiYWRvcm5lci5ob3ZlcigkZXZlbnQsICRldmVudC5jdXJyZW50VGFyZ2V0KVwiIChtb3VzZWxlYXZlKT1cImFkb3JuZXIuaG92ZXIoJGV2ZW50LCAkZXZlbnQuY3VycmVudFRhcmdldClcIlxuICAgIFthdHRyLmRhdGEtc3YtZHJvcC10YXJnZXQtc3VydmV5LWVsZW1lbnRdPVwiYWRvcm5lci5lbGVtZW50Lm5hbWUgfHwgbnVsbFwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuc2hvd0hpZGRlblRpdGxlXCIgW2NsYXNzXT1cImFkb3JuZXIuY3NzQ29sbGFwc2VkSGlkZGVuSGVhZGVyXCI+XG4gICAgICA8c3YtbmctZWxlbWVudC10aXRsZSAqbmdJZj1cIiEhbW9kZWwuaGFzVGl0bGVcIiBbZWxlbWVudF09XCJtb2RlbFwiPjwvc3YtbmctZWxlbWVudC10aXRsZT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFtb2RlbC5oYXNUaXRsZVwiIFtjbGFzc109XCJhZG9ybmVyLmNzc0NvbGxhcHNlZEhpZGRlblRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmMtZmFrZS10aXRsZVwiPnt7bW9kZWwubmFtZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWRvcm5lci5jc3MoKVwiIFtrZXkyY2xpY2tdPVwieyBkaXNhYmxlVGFiU3RvcDogdHJ1ZSB9XCIgKGNsaWNrKT1cImFkb3JuZXIuc2VsZWN0KGFkb3JuZXIsICRldmVudClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWxlZnRcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLXJpZ2h0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcm9wLWluZGljYXRvciBzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yLS10b3BcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWJvdHRvbVwiPjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuYWxsb3dEcmFnZ2luZ1wiIGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcmFnLWFyZWFcIiAocG9pbnRlcmRvd24pPVwiYWRvcm5lci5vblBvaW50ZXJEb3duKCRldmVudClcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fZHJhZy1lbGVtZW50XCIgW2ljb25OYW1lXT1cIidpY29uLWRyYWctYXJlYS1pbmRpY2F0b3JfMjR4MTYnXCIgW3NpemVdPVwiJ2F1dG8nXCJcbiAgICAgICAgICBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fdG9wLWFjdGlvbnNcIj5cbiAgICAgICAgICA8c3YtYWN0aW9uLWJhciBbbW9kZWxdPVwiYWRvcm5lci50b3BBY3Rpb25Db250YWluZXJcIiBbaGFuZGxlQ2xpY2tdPVwiZmFsc2VcIj48L3N2LWFjdGlvbi1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRvcm5lci5uZWVkVG9SZW5kZXJDb250ZW50XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGNvbXBvbmVudE5hbWUsIGRhdGE6IGNvbXBvbmVudERhdGEgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWRvcm5lci5pc0VtcHR5RWxlbWVudCAmJiAhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCIgY2xhc3M9XCJzdmMtcGFuZWxfX3BsYWNlaG9sZGVyX2ZyYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1wYW5lbF9fcGxhY2Vob2xkZXJfZnJhbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXBhbmVsX19wbGFjZWhvbGRlclwiPnt7IGFkb3JuZXIucGxhY2Vob2xkZXJUZXh0IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJhZG9ybmVyLmlzRW1wdHlFbGVtZW50ICYmICEhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IHBsYWNlaG9sZGVyQ29tcG9uZW50LCBkYXRhOiBwbGFjZWhvbGRlckNvbXBvbmVudERhdGEgfVwiPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImFkb3JuZXJDb21wb25lbnRcIlxuICAgICAgICBbY29tcG9uZW50XT1cInsgbmFtZTogYWRvcm5lckNvbXBvbmVudCwgZGF0YTogeyBhZG9ybmVyOiBhZG9ybmVyLCBxdWVzdGlvbjogbW9kZWwgfSB9XCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPHN2Yy1xdWVzdGlvbi1iYW5uZXIgKm5nSWY9XCJhZG9ybmVyLmlzQmFubmVyU2hvd2luZ1wiIFttb2RlbF09XCJhZG9ybmVyLmNyZWF0ZUJhbm5lclBhcmFtcygpXCI+XG4gICAgICA8L3N2Yy1xdWVzdGlvbi1iYW5uZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19jb250ZW50LWFjdGlvbnNcIiAoZm9jdXNpbik9XCJhZG9ybmVyLnNlbGVjdChhZG9ybmVyLCAkZXZlbnQpXCI+XG4gICAgICAgIDxzdi1hY3Rpb24tYmFyIFttb2RlbF09XCJhZG9ybmVyLmFjdGlvbkNvbnRhaW5lclwiIFtoYW5kbGVDbGlja109XCJmYWxzZVwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3ZjLXJhdGluZy1xdWVzdGlvbi1jb250ZW50XCI+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWRvcm5lci5jb250cm9sc0NsYXNzTmFtZXNcIj5cbiAgICAgIDxzdmcgKm5nSWY9XCJhZG9ybmVyLmFsbG93UmVtb3ZlXCIgW2ljb25OYW1lXT1cIidpY29uLXJlbW92ZV8xNngxNidcIiBbc2l6ZV09XCInYXV0bydcIiBba2V5MmNsaWNrXSAoY2xpY2spPVwiYWRvcm5lci5yZW1vdmVJdGVtKGFkb3JuZXIpXCJcbiAgICAgIFtjbGFzc109XCJhZG9ybmVyLnJlbW92ZUNsYXNzTmFtZXNcIiBbYXR0ci50aXRsZV09XCJhZG9ybmVyLnJlbW92ZVRvb2x0aXBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFkb3JuZXIucmVtb3ZlVG9vbHRpcFwiIHN2LW5nLXN2Zy1pY29uPjwvc3ZnPlxuICAgICAgPHN2ZyAqbmdJZj1cImFkb3JuZXIuYWxsb3dBZGRcIiBbaWNvbk5hbWVdPVwiJ2ljb24tYWRkXzE2eDE2J1wiIFtzaXplXT1cIidhdXRvJ1wiIFtrZXkyY2xpY2tdIChjbGljayk9XCJhZG9ybmVyLmFkZEl0ZW0oYWRvcm5lcilcIlxuICAgICAgW2NsYXNzXT1cImFkb3JuZXIuYWRkQ2xhc3NOYW1lc1wiIFthdHRyLnRpdGxlXT1cImFkb3JuZXIuYWRkVG9vbHRpcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWRvcm5lci5hZGRUb29sdGlwXCJzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=