@infordata-web/portal-common-component-lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.
93 lines • 16.5 kB
JavaScript
import { Component, Output, Input, ApplicationRef, EventEmitter } from "@angular/core";
import { of, combineLatest, defer } from "rxjs";
import { Validators, FormControl, FormGroup } from "@angular/forms";
import { map, shareReplay, startWith, switchMap, tap, withLatestFrom } from "rxjs/operators";
import { MessageService } from "../../services/message.service";
import { TipologicheService } from "../../services/tipologiche/tipologiche.service";
import { ComponentOutputStatus } from "../../normalizzazione/component-output-status";
export class DatiTribunaleComponent {
constructor(msg, tipologiche, appRef) {
this.msg = msg;
this.tipologiche = tipologiche;
this.appRef = appRef;
this.form = new FormGroup({});
this.done = new EventEmitter();
}
ngOnDestroy() {
if (this.$valuechangeTrib) {
this.$valuechangeTrib.unsubscribe();
}
if (this.$changeTribunale) {
this.$changeTribunale.unsubscribe();
}
}
ngOnInit() {
var _a, _b;
const localitaProvinciaAC = new FormControl({ value: (_a = this === null || this === void 0 ? void 0 : this.autoritaOrdinante) === null || _a === void 0 ? void 0 : _a.codiceProvincia, disabled: false }, [Validators.required]);
this.form.addControl("localitaProvinciaAC", localitaProvinciaAC);
const tribunaleAC = new FormControl({ value: '', disabled: false }, c => {
return String(c.value || '').length > 0
? {}
: { 'required': 'Il campo è obbligatorio.' };
});
this.form.addControl("tribunaleAC", tribunaleAC);
/* const tribunaleCF = new FormControl(
{ value: "", disabled: true }
);
this.form.addControl("tribunaleCF", tribunaleCF); */
//reccupero_tribunali
this.tribunali$ = localitaProvinciaAC.valueChanges
.pipe(startWith((_b = this.autoritaOrdinante) === null || _b === void 0 ? void 0 : _b.codiceProvincia), switchMap((value) => this.tipologiche.getTribunali$(value)
.pipe(withLatestFrom(of(value)))),
// tap(_ => console.log("outMergeMap", _)),
//SE SI PROVIENE DALLE BOZZE => SI RESETTA IL TRIBUNALE
tap(([tribunali, value]) => {
var _a;
if (value == ((_a = this.autoritaOrdinante) === null || _a === void 0 ? void 0 : _a.codiceProvincia)) {
tribunaleAC.setValue(this.autoritaOrdinante.idTribunale);
}
else {
tribunaleAC.setValue(null);
}
}), map(([tribunali, value]) => tribunali), shareReplay()
// catchError(error=> )
);
//Build_output_steam
const changeTribinali$ = defer(() => this.tribunali$);
const streamOutput$ = combineLatest([
changeTribinali$,
tribunaleAC.valueChanges
])
.pipe(map(([listaTribunali, tribunaleSelected]) => listaTribunali.find(tribunale => tribunale.id == tribunaleSelected)), map(tribunale => ComponentOutputStatus.of(this.form.valid, tribunale)));
/* this.cf$ = tribunaleAC.valueChanges
.pipe(
tap(_ => console.log("cf$", _)),
switchMap(value => this.tribunali$.pipe(
map(trib => trib.find(
tribunale => tribunale.codiceistat == value)?.codiceFiscale
))
)
) */
//OUTPUT_COMPONENT
this.$valuechangeTrib = streamOutput$.pipe().subscribe(out => this.done.emit(out));
}
resetTribunale() { }
}
DatiTribunaleComponent.decorators = [
{ type: Component, args: [{
selector: 'lib-dati-tribunale',
template: "<div class=\"row\" [formGroup]=\"form\">\r\n\t<div class=\"col-12\">\r\n\t\t<!-- <h4 class=\"h5\">{{'inserisci-dati-tribunale' | traduzione}}</h4> -->\r\n\t\t<h3 class=\"h5 mb-0\"><info-tip-label label=\"inserisci-dati-tribunale\"></info-tip-label></h3>\r\n\t</div>\r\n\t<div class=\"col-md-6\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'required' | traduzione}}{{'provincia' | traduzione}}</mat-label>\r\n\t\t\t<mat-select placeholder=\"{{'seleziona' | traduzione}}\" formControlName=\"localitaProvinciaAC\">\r\n\t\t\t\t<mat-option *ngFor=\"let provincia of province | async\" [value]=\"provincia.sigla\">\r\n\t\t\t\t\t{{provincia.denominazione}}\r\n\t\t\t\t</mat-option>\r\n\t\t\t</mat-select>\r\n\t\t\t<mat-error *ngIf=\"form.touched && form.controls[ 'localitaProvinciaAC'].invalid\">\r\n\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls[ 'localitaProvinciaAC']) | traduzione}}\r\n\t\t\t</mat-error>\r\n\t\t\t<mat-hint *infoTip=\"'provincia'\"></mat-hint>\r\n\t\t</mat-form-field>\r\n\t</div>\r\n\t<div class=\"col-md-6\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'required' | traduzione}}{{'tribunale' | traduzione}}</mat-label>\r\n\t\t\t<mat-select formControlName=\"tribunaleAC\">\r\n\t\t\t\t<mat-option *ngFor=\"let tribunale of tribunali$ | async\" [value]=\"tribunale.id\">\r\n\t\t\t\t\t{{tribunale.nomeUfficio}}\r\n\t\t\t\t</mat-option>\r\n\t\t\t</mat-select>\r\n\t\t\t<mat-error *ngIf=\"form.controls[ 'tribunaleAC'].invalid\">\r\n\t\t\t\t{{msg.produceMessage('obbligatorio', form.controls[ 'tribunaleAC']) | traduzione}}\r\n\t\t\t</mat-error>\r\n\t\t\t<mat-hint *infoTip=\"'tribunale'\"></mat-hint>\r\n\t\t</mat-form-field>\r\n\t</div>\r\n\t<!-- <div class=\"col-md-4\" *ngIf=\"cf$ | async\">\r\n\t\t<mat-form-field>\r\n\t\t\t<mat-label>{{'codice-fiscale' | traduzione}}</mat-label>\r\n\t\t\t<input matInput formControlName=\"tribunaleCF\" [value]=\"cf$ | async\">\r\n\t\t</mat-form-field>\r\n\t</div> -->\r\n</div>\r\n",
styles: [""]
},] }
];
DatiTribunaleComponent.ctorParameters = () => [
{ type: MessageService },
{ type: TipologicheService },
{ type: ApplicationRef }
];
DatiTribunaleComponent.propDecorators = {
province: [{ type: Input }],
autoritaOrdinante: [{ type: Input }],
done: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0aS10cmlidW5hbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2dldHRpL0RBRy9zb3JnZW50aS9naXRsYWItc29mdHdhcmVmYWN0b3J5L2NvbW1vbi1jb21wb25lbnQtbGliL3Byb2plY3RzL3BvcnRhbC1jb21tb24tY29tcG9uZW50LWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVwb3NpdGkvY29tbW9uLWNvbXBvbmVudC9kYXRpLXRyaWJ1bmFsZS9kYXRpLXRyaWJ1bmFsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBNEIsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBWSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBZ0J0RixNQUFNLE9BQU8sc0JBQXNCO0lBY2xDLFlBQ1MsR0FBbUIsRUFDbkIsV0FBK0IsRUFDL0IsTUFBc0I7UUFGdEIsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBWC9CLFNBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFF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UyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXpFOzs7Ozs7OztnQkFRSztRQUVMLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLElBQUksRUFDekMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFHRCxjQUFjLEtBQUssQ0FBQzs7O1lBbkdwQixTQUFTLFNBQUM7Z0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsMjZEQUE4Qzs7YUFFOUM7OztZQWpCUSxjQUFjO1lBQ2Qsa0JBQWtCO1lBTjJCLGNBQWM7Ozt1QkF3QmxFLEtBQUs7Z0NBRUwsS0FBSzttQkFNTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT3V0cHV0LCBJbnB1dCwgQXBwbGljYXRpb25SZWYsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgT2JzZXJ2YWJsZSwgb2YsIGNvbWJpbmVMYXRlc3QsIGRlZmVyIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUHJvdmluY2lhRFRPIH0gZnJvbSBcIi4uLy4uL21vZGVscy9wcm92aW5jaWEtZHRvXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUaXBvbG9naWNoZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdGlwb2xvZ2ljaGUvdGlwb2xvZ2ljaGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRPdXRwdXRTdGF0dXMgfSBmcm9tIFwiLi4vLi4vbm9ybWFsaXp6YXppb25lL2NvbXBvbmVudC1vdXRwdXQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IFRyaWJ1bmFsZURUTyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdHJpYnVuYWxlLWR0b1wiO1xyXG5pbXBvcnQgeyBBdXRvcml0YU9yZGluYW50ZURUTyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXV0b3JpdGEtb3JkaW5hbnRlLWR0b1wiO1xyXG50eXBlIGVycm9yU2VydmljZUZhaWxlZCA9IHtcclxuXHRlcnJvcjogc3RyaW5nXHJcbn1cclxudHlwZSBwcm92aW5jaWFBbmRUcmlidW5hbGkgPSB7XHJcblx0dHJpYnVuYWxpOiBBcnJheTxUcmlidW5hbGVEVE8+LFxyXG5cdHNpZ2xhUHJvdmluY2lhOiBzdHJpbmdcclxufVxyXG50eXBlIE9VVFBVVF9DT01QT05FTlQgPSBzdHJpbmcgfCBDb21wb25lbnRPdXRwdXRTdGF0dXM8VHJpYnVuYWxlRFRPPiB8IENvbXBvbmVudE91dHB1dFN0YXR1czxlcnJvclNlcnZpY2VGYWlsZWQ+XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWRhdGktdHJpYnVuYWxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZGF0aS10cmlidW5hbGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2RhdGktdHJpYnVuYWxlLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0aVRyaWJ1bmFsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRASW5wdXQoKVxyXG5cdHByb3ZpbmNlOiBPYnNlcnZhYmxlPEFycmF5PFByb3ZpbmNpYURUTz4+O1xyXG5cdEBJbnB1dCgpXHJcblx0YXV0b3JpdGFPcmRpbmFudGU6IEF1dG9yaXRhT3JkaW5hbnRlRFRPO1xyXG5cdGNmJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG5cdGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHR0cmlidW5hbGkkOiBPYnNlcnZhYmxlPFRyaWJ1bmFsZURUT1tdPjtcclxuXHQkdmFsdWVjaGFuZ2VUcmliOiBTdWJzY3JpcHRpb247XHJcblx0QE91dHB1dCgpXHJcblx0ZG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHQkY2hhbmdlVHJpYnVuYWxlOiBTdWJzY3JpcHRpb247XHJcblxyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgbXNnOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgdGlwb2xvZ2ljaGU6IFRpcG9sb2dpY2hlU2VydmljZSxcclxuXHRcdHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZlxyXG5cclxuXHQpIHsgfVxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuJHZhbHVlY2hhbmdlVHJpYikge1xyXG5cdFx0XHR0aGlzLiR2YWx1ZWNoYW5nZVRyaWIudW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLiRjaGFuZ2VUcmlidW5hbGUpIHtcclxuXHRcdFx0dGhpcy4kY2hhbmdlVHJpYnVuYWxlLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdGNvbnN0IGxvY2FsaXRhUHJvdmluY2lhQUMgPSBuZXcgRm9ybUNvbnRyb2woXHJcblx0XHRcdHsgdmFsdWU6IHRoaXM/LmF1dG9yaXRhT3JkaW5hbnRlPy5jb2RpY2VQcm92aW5jaWEsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG5cdFx0XHRbVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuXHRcdCk7XHJcblx0XHR0aGlzLmZvcm0uYWRkQ29udHJvbChcImxvY2FsaXRhUHJvdmluY2lhQUNcIiwgbG9jYWxpdGFQcm92aW5jaWFBQyk7XHJcblxyXG5cdFx0Y29uc3QgdHJpYnVuYWxlQUMgPSBuZXcgRm9ybUNvbnRyb2woXHJcblx0XHRcdHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSwgYyA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIFN0cmluZyhjLnZhbHVlIHx8ICcnKS5sZW5ndGggPiAwXHJcblx0XHRcdFx0XHQ/IHt9XHJcblx0XHRcdFx0XHQ6IHsgJ3JlcXVpcmVkJzogJ0lsIGNhbXBvIMOoIG9iYmxpZ2F0b3Jpby4nIH1cclxuXHRcdFx0fSk7XHJcblx0XHR0aGlzLmZvcm0uYWRkQ29udHJvbChcInRyaWJ1bmFsZUFDXCIsIHRyaWJ1bmFsZUFDKTtcclxuXHJcblx0XHQvKiBjb25zdCB0cmlidW5hbGVDRiA9IG5ldyBGb3JtQ29udHJvbChcclxuXHRcdFx0eyB2YWx1ZTogXCJcIiwgZGlzYWJsZWQ6IHRydWUgfVxyXG5cdFx0KTtcclxuXHRcdHRoaXMuZm9ybS5hZGRDb250cm9sKFwidHJpYnVuYWxlQ0ZcIiwgdHJpYnVuYWxlQ0YpOyAqL1xyXG5cclxuXHRcdC8vcmVjY3VwZXJvX3RyaWJ1bmFsaVxyXG5cdFx0dGhpcy50cmlidW5hbGkkID0gbG9jYWxpdGFQcm92aW5jaWFBQy52YWx1ZUNoYW5nZXNcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0c3RhcnRXaXRoKHRoaXMuYXV0b3JpdGFPcmRpbmFudGU/LmNvZGljZVByb3ZpbmNpYSksXHJcblx0XHRcdFx0c3dpdGNoTWFwKCh2YWx1ZSkgPT4gdGhpcy50aXBvbG9naWNoZS5nZXRUcmlidW5hbGkkKHZhbHVlKVxyXG5cdFx0XHRcdFx0LnBpcGUod2l0aExhdGVzdEZyb20ob2YodmFsdWUpKSkpLFxyXG5cdFx0XHRcdC8vIHRhcChfID0+IGNvbnNvbGUubG9nKFwib3V0TWVyZ2VNYXBcIiwgXykpLFxyXG5cdFx0XHRcdC8vU0UgU0kgUFJPVklFTkUgREFMTEUgQk9aWkUgPT4gU0kgUkVTRVRUQSBJTCBUUklCVU5BTEVcclxuXHRcdFx0XHR0YXAoKFt0cmlidW5hbGksIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHZhbHVlID09IHRoaXMuYXV0b3JpdGFPcmRpbmFudGU/LmNvZGljZVByb3ZpbmNpYSkge1xyXG5cdFx0XHRcdFx0XHR0cmlidW5hbGVBQy5zZXRWYWx1ZSh0aGlzLmF1dG9yaXRhT3JkaW5hbnRlLmlkVHJpYnVuYWxlKVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dHJpYnVuYWxlQUMuc2V0VmFsdWUobnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChbdHJpYnVuYWxpLCB2YWx1ZV0pID0+IHRyaWJ1bmFsaSksXHJcblx0XHRcdFx0c2hhcmVSZXBsYXkoKVxyXG5cdFx0XHRcdC8vIGNhdGNoRXJyb3IoZXJyb3I9PiApXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0Ly9CdWlsZF9vdXRwdXRfc3RlYW1cclxuXHRcdGNvbnN0IGNoYW5nZVRyaWJpbmFsaSQgPSBkZWZlcigoKSA9PiB0aGlzLnRyaWJ1bmFsaSQpO1xyXG5cdFx0Y29uc3Qgc3RyZWFtT3V0cHV0JCA9IGNvbWJpbmVMYXRlc3QoW1xyXG5cdFx0XHRjaGFuZ2VUcmliaW5hbGkkLFxyXG5cdFx0XHR0cmlidW5hbGVBQy52YWx1ZUNoYW5nZXNdKVxyXG5cdFx0XHQucGlwZShtYXAoKFtsaXN0YVRyaWJ1bmFsaSwgdHJpYnVuYWxlU2VsZWN0ZWRdKSA9PiBsaXN0YVRyaWJ1bmFsaS5maW5kKFxyXG5cdFx0XHRcdHRyaWJ1bmFsZSA9PiB0cmlidW5hbGUuaWQgPT0gdHJpYnVuYWxlU2VsZWN0ZWQpKSxcclxuXHRcdFx0XHRtYXAodHJpYnVuYWxlID0+IENvbXBvbmVudE91dHB1dFN0YXR1cy5vZih0aGlzLmZvcm0udmFsaWQsIHRyaWJ1bmFsZSkpKVxyXG5cclxuXHRcdC8qIHRoaXMuY2YkID0gdHJpYnVuYWxlQUMudmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHRhcChfID0+IGNvbnNvbGUubG9nKFwiY2YkXCIsIF8pKSxcclxuXHRcdFx0XHRzd2l0Y2hNYXAodmFsdWUgPT4gdGhpcy50cmlidW5hbGkkLnBpcGUoXHJcblx0XHRcdFx0XHRtYXAodHJpYiA9PiB0cmliLmZpbmQoXHJcblx0XHRcdFx0XHRcdHRyaWJ1bmFsZSA9PiB0cmlidW5hbGUuY29kaWNlaXN0YXQgPT0gdmFsdWUpPy5jb2RpY2VGaXNjYWxlXHJcblx0XHRcdFx0XHQpKVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KSAqL1xyXG5cclxuXHRcdC8vT1VUUFVUX0NPTVBPTkVOVFxyXG5cdFx0dGhpcy4kdmFsdWVjaGFuZ2VUcmliID0gc3RyZWFtT3V0cHV0JC5waXBlKFxyXG5cdFx0KS5zdWJzY3JpYmUob3V0ID0+IHRoaXMuZG9uZS5lbWl0KG91dCkpXHJcblx0fVxyXG5cclxuXHJcblx0cmVzZXRUcmlidW5hbGUoKSB7IH1cclxuXHJcbn0iXX0=