@esfaenza/core 15.2.180-beta3 → 15.2.180-beta4
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/domain/models/user/UserAccount.d.ts +14 -5
- package/esm2020/components/page/pages.component.mjs +3 -3
- package/esm2020/components/user_infos/user_infos.component.mjs +3 -3
- package/esm2020/domain/models/user/UserAccount.mjs +1 -1
- package/esm2020/lib/app.component.mjs +2 -2
- package/esm2020/services/classes/preferences/user/app.userpreferences.base.mjs +14 -14
- package/fesm2015/esfaenza-core-components.mjs +4 -4
- package/fesm2015/esfaenza-core-components.mjs.map +1 -1
- package/fesm2015/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2015/esfaenza-core-services.mjs +13 -13
- package/fesm2015/esfaenza-core-services.mjs.map +1 -1
- package/fesm2015/esfaenza-core.mjs +2 -2
- package/fesm2015/esfaenza-core.mjs.map +1 -1
- package/fesm2020/esfaenza-core-components.mjs +4 -4
- package/fesm2020/esfaenza-core-components.mjs.map +1 -1
- package/fesm2020/esfaenza-core-domain.mjs.map +1 -1
- package/fesm2020/esfaenza-core-services.mjs +13 -13
- package/fesm2020/esfaenza-core-services.mjs.map +1 -1
- package/fesm2020/esfaenza-core.mjs +2 -2
- package/fesm2020/esfaenza-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
export declare class UserAccount {
|
|
2
2
|
id: string;
|
|
3
|
-
|
|
4
|
-
idtenant: string;
|
|
3
|
+
tenantid: string;
|
|
5
4
|
username: string;
|
|
5
|
+
typeid: string;
|
|
6
|
+
type: string;
|
|
6
7
|
dtvalidfrom: Date;
|
|
7
8
|
dtvalidto: Date;
|
|
8
|
-
|
|
9
|
+
dtlock: Date;
|
|
10
|
+
lockreason: string;
|
|
11
|
+
userid: string;
|
|
12
|
+
userdescription: string;
|
|
13
|
+
uuid: string;
|
|
9
14
|
firstname: string;
|
|
10
15
|
lastname: string;
|
|
11
|
-
dtlockdown: Date;
|
|
12
|
-
lockdownreason: string;
|
|
13
16
|
recoveryemail: string;
|
|
17
|
+
recoveryphone: string;
|
|
18
|
+
dtottexpiration: Date;
|
|
19
|
+
dtlastlogin: Date;
|
|
20
|
+
lastloginattempts: number;
|
|
21
|
+
islocked: boolean;
|
|
22
|
+
isvalid: boolean;
|
|
14
23
|
}
|
|
@@ -49,12 +49,12 @@ export class PagesComponent {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
PagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.AppState }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PagesComponent, isStandalone: true, selector: "pages", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:
|
|
52
|
+
PagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PagesComponent, isStandalone: true, selector: "pages", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:calc(100vw - 230px);height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"], dependencies: [{ kind: "component", type: Navbar, selector: "navbar" }, { kind: "component", type: Sidebar, selector: "sidebar" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: Breadcrumb, selector: "breadcrumb" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: BackTop, selector: "back-top", inputs: ["position", "showSpeed", "moveSpeed"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PagesComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
|
-
args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:
|
|
55
|
+
args: [{ selector: "pages", encapsulation: ViewEncapsulation.None, standalone: true, imports: [Navbar, Sidebar, NgClass, NgIf, Breadcrumb, RouterOutlet, BackTop], template: "<div class=\"pages-container\">\r\n <sidebar></sidebar>\r\n <div style=\"width: 100%;\">\r\n <navbar>\r\n <breadcrumb></breadcrumb>\r\n </navbar>\r\n <div class=\"main-wrapper\" [style.max-height.px]=\"maxHeight\" [ngClass]=\"{'menu-collapsed': isMenuCollapsed}\">\r\n <div class=\"az-overlay\" *ngIf=\"!isMenuCollapsed\" (click)=\"hideMenu()\"></div>\r\n <div class=\"main\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <back-top [position]=\"200\"></back-top>\r\n </div>\r\n </div>\r\n</div>", styles: [".main-wrapper{padding:20px 40px;position:relative;width:calc(100vw - 230px);height:100%;overflow:auto}.main{height:100%;min-height:650px}.az-overlay{position:fixed;inset:0;z-index:8;background:rgba(36,45,58,.2);width:100%;height:100%;display:none}.pages-container{height:100vh;width:100vw;display:flex}@media (max-width: 544px){.main-wrapper,.main-wrapper.menu-collapsed{margin-left:0;padding:30px 20px}.az-overlay{display:block}.footer .footer-main,.footer .created{float:none}}@media (min-width: 544px) and (max-width: 768px){.az-overlay{display:block}}\n"] }]
|
|
56
56
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.AppState }, { type: i3.Location }, { type: i4.Router }]; }, propDecorators: { onResize: [{
|
|
57
57
|
type: HostListener,
|
|
58
58
|
args: ['window:resize', ['$event']]
|
|
59
59
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL3NyYy9wYWdlL3BhZ2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvcGFnZS9wYWdlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFZLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLdkQsYUFBYTtBQUNiLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBWXBELE1BQU0sT0FBTyxjQUFjO0lBTXZCLFlBQW1CLFNBQXVCLEVBQVMsTUFBZ0IsRUFBVSxTQUFtQixFQUFTLE1BQWM7UUFBcEcsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVU7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUxoSCxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUN0QyxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUdoQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsVUFBVSxDQUFDO1lBQ1AsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDakgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzJHQXJDUSxjQUFjOytGQUFkLGNBQWMsK0hDekIzQixpbUJBY00sdW1CRFNRLE1BQU0sbURBQUUsT0FBTyxvREFBRSxPQUFPLG9GQUFFLElBQUksNkZBQUUsVUFBVSx1REFBRSxZQUFZLDJKQUFFLE9BQU87MkZBRWxFLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0ksT0FBTyxpQkFDRixpQkFBaUIsQ0FBQyxJQUFJLGNBR3pCLElBQUksV0FDUCxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQztzS0FxQzVFLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24sIE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuXHJcbi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgQmFja1RvcCB9IGZyb20gXCIuLi9iYWNrLXRvcC9iYWNrLXRvcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gXCIuLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZGViYXIgfSBmcm9tIFwiLi4vc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOYXZiYXIgfSBmcm9tIFwiLi4vbmF2YmFyL25hdmJhci5jb21wb25lbnRcIjtcclxuXHJcbmRlY2xhcmUgdmFyIGpRdWVyeTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwicGFnZXNcIixcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vcGFnZXMuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3BhZ2VzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05hdmJhciwgU2lkZWJhciwgTmdDbGFzcywgTmdJZiwgQnJlYWRjcnVtYiwgUm91dGVyT3V0bGV0LCBCYWNrVG9wXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZXNDb21wb25lbnQge1xyXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIG1heEhlaWdodDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBkeW5hbWljQ1NTVXJsOiBTYWZlUmVzb3VyY2VVcmwgPSBudWxsO1xyXG4gICAgcHVibGljIGxvYWRlZE1vZHVsZUNzczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwcml2YXRlIF9sb2NhdGlvbjogTG9jYXRpb24sIHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKGlzQ29sbGFwc2VkKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNZW51Q29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDdXJyZW50UGFnZU5hbWUoKTtcclxuICAgICAgICB0aGlzLmdldEhlaWdodCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEN1cnJlbnRQYWdlTmFtZSgpOiB2b2lkIHtcclxuICAgICAgICB2YXIgdXJsID0gdGhpcy5fbG9jYXRpb24ucGF0aCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XHJcbiAgICAgICAgICAgIGpRdWVyeSgnYVtocmVmPVwiIycgKyB1cmwgKyAnXCJdJykuY2xvc2VzdChcImxpXCIpLmNsb3Nlc3QoXCJ1bFwiKS5jbG9zZXN0KFwibGlcIikuYWRkQ2xhc3MoXCJzaWRlYmFyLWl0ZW0tZXhwYW5kZWRcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhpZGVNZW51KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLm5vdGlmeURhdGFDaGFuZ2VkKFwibWVudS5pc0NvbGxhcHNlZFwiLCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SGVpZ2h0KCkge1xyXG4gICAgICAgIHZhciBodG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQgLSA2MDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICAgIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5nZXRIZWlnaHQoKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJwYWdlcy1jb250YWluZXJcIj5cclxuICAgIDxzaWRlYmFyPjwvc2lkZWJhcj5cclxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICA8bmF2YmFyPlxyXG4gICAgICAgICAgICA8YnJlYWRjcnVtYj48L2JyZWFkY3J1bWI+XHJcbiAgICAgICAgPC9uYXZiYXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4td3JhcHBlclwiIFtzdHlsZS5tYXgtaGVpZ2h0LnB4XT1cIm1heEhlaWdodFwiIFtuZ0NsYXNzXT1cInsnbWVudS1jb2xsYXBzZWQnOiBpc01lbnVDb2xsYXBzZWR9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhei1vdmVybGF5XCIgKm5nSWY9XCIhaXNNZW51Q29sbGFwc2VkXCIgKGNsaWNrKT1cImhpZGVNZW51KClcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5cIj5cclxuICAgICAgICAgICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxiYWNrLXRvcCBbcG9zaXRpb25dPVwiMjAwXCI+PC9iYWNrLXRvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -109,7 +109,7 @@ export class UserInfosComponent extends BaseComponent {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
UserInfosComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserInfosComponent, deps: [{ token: i0.Injector }, { token: i1.TokenService }, { token: i2.MessageService }, { token: i2.ExportService }, { token: i2.UtilityService }, { token: i3.LocalizationService }, { token: i1.AppState }, { token: i1.UserPreferencesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
UserInfosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: UserInfosComponent, isStandalone: true, selector: "user-infos", viewQueries: [{ propertyName: "dlgShowAccountRoles", first: true, predicate: ["dlgShowAccountRoles"], descendants: true }, { propertyName: "dlgUpdateProfilePicture", first: true, predicate: ["dlgUpdateProfilePicture"], descendants: true }, { propertyName: "dlgUpdateRecoverySettings", first: true, predicate: ["dlgUpdateRecoverySettings"], descendants: true }, { propertyName: "dlgUpdatePassword", first: true, predicate: ["dlgUpdatePassword"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.idtenant}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}: </strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsAndValidationsModule }, { kind: "component", type: i5.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i5.FormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i3.LocalizePipe, name: "localize" }, { kind: "component", type: EsModalComponent, selector: "es-modal", inputs: ["Size", "IgnoreBackdrop", "Backdrop", "HasOverlap"], outputs: ["onShow", "onHide"] }, { kind: "component", type: EsModalHeadComponent, selector: "es-modal-head", outputs: ["Close"] }, { kind: "component", type: LabeledSpanComponent, selector: "labeled-span", inputs: ["First", "Label", "Display"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i6.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }] });
|
|
112
|
+
UserInfosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: UserInfosComponent, isStandalone: true, selector: "user-infos", viewQueries: [{ propertyName: "dlgShowAccountRoles", first: true, predicate: ["dlgShowAccountRoles"], descendants: true }, { propertyName: "dlgUpdateProfilePicture", first: true, predicate: ["dlgUpdateProfilePicture"], descendants: true }, { propertyName: "dlgUpdateRecoverySettings", first: true, predicate: ["dlgUpdateRecoverySettings"], descendants: true }, { propertyName: "dlgUpdatePassword", first: true, predicate: ["dlgUpdatePassword"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}: </strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsAndValidationsModule }, { kind: "component", type: i5.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i5.FormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i3.LocalizePipe, name: "localize" }, { kind: "component", type: EsModalComponent, selector: "es-modal", inputs: ["Size", "IgnoreBackdrop", "Backdrop", "HasOverlap"], outputs: ["onShow", "onHide"] }, { kind: "component", type: EsModalHeadComponent, selector: "es-modal-head", outputs: ["Close"] }, { kind: "component", type: LabeledSpanComponent, selector: "labeled-span", inputs: ["First", "Label", "Display"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "ngmodule", type: AccessControlModule }, { kind: "directive", type: i6.AccessControlDirective, selector: "[ac]", inputs: ["ac", "acAbsolute"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }] });
|
|
113
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UserInfosComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
115
|
args: [{ selector: "user-infos", viewProviders: [{ provide: LocalizationService, useClass: UserInfoComponentLoc }], standalone: true, imports: [
|
|
@@ -124,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
124
124
|
ExtensionsModule,
|
|
125
125
|
AccessControlModule,
|
|
126
126
|
MatTooltipModule
|
|
127
|
-
], template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.
|
|
127
|
+
], template: "<div style=\"height: 100%; width: 100%; display: flex;\">\r\n <div style=\"margin: auto;\">\r\n <div class=\"user-img-container\">\r\n <img [src]=\"profile.ProfilePicture\" alt=\"user-img\" class=\"user-img\" />\r\n <div class=\"app-pointer user-img-btn\">\r\n <div class=\"app-opacity user-img-btn-body\" (click)=\"onUpdateProfilePicture();\">\r\n <i class=\"far fa-pen\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\" style=\"position: relative;\" *ngIf=\"AccountDetails\">\r\n <div class=\"card card-body app-no-margin app-padding-15\">\r\n <div class=\"row\">\r\n <div *ac=\"'R:Jace Admin'\" class=\"user-roles-btn\" [matTooltip]=\"'Visualizza Ruoli e Permessi'\" matTooltipPosition=\"above\" (click)=\"onShowAccountRoles();\">\r\n <i class=\"far fa-book-user\"></i>\r\n </div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Utente' | localize : lc\" Display=\"Vertical\">{{AccountDetails.username}}</labeled-span></div>\r\n <div class=\"col-md-6\"><labeled-span [Label]=\"'Tenant' | localize : lc\" Display=\"Vertical\">{{AccountDetails.tenantid}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Nome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.firstname}}</labeled-span></div>\r\n <div class=\"col-md-6 app-margin-top-10\"><labeled-span [Label]=\"'Cognome' | localize : lc\" Display=\"Vertical\">{{AccountDetails.lastname}}</labeled-span> </div>\r\n <div class=\"col-md-12 app-margin-top-10\"><labeled-span [Label]=\"'Email' | localize : lc\" Display=\"Vertical\">{{AccountDetails.recoveryemail || 'Non disponibile'}}</labeled-span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-10 row\">\r\n <div class=\"col-md-6\" style=\"padding-right: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdatePassword()\">Modifica Password</button>\r\n </div>\r\n <div class=\"col-md-6\" style=\"padding-left: 5px;\">\r\n <button type=\"button\" style=\"width: 100%;\" class=\"btn btn-primary\" (click)=\"onUpdateRecoverySettings()\">Modifica Email</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--Update Password-->\r\n<es-modal #dlgUpdatePassword [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdatePassword.hide();\">\r\n <h5 class=\"modal-title pull-left\">Modifica Password</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdatePasswordDTO\" #formUpdatePassword=\"ngForm\" (ngSubmit)=\"formUpdatePassword.valid && doUpdatePassword()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [Password]=\"true\" [Label]=\"'Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.oldpwd\" name=\"oldpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Nuova Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.newpwd\" name=\"newpw\" required></form-input>\r\n <form-input [Password]=\"true\" [Label]=\"'Conferma Password' | localize: lc\" [(ngModel)]=\"UpdatePasswordDTO.confirmpwd\" name=\"confpw\" required></form-input>\r\n <!--Validazione Custom-->\r\n <div *ngIf=\"CustomError\" class=\"app-white-text app-margin-top-15 app-margin-bottom-0 card app-padding-10 card-danger\">\r\n <strong>{{'Error' | localize : lc}}: </strong>{{CustomError}}\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdatePassword.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Update Extra Info-->\r\n<es-modal #dlgUpdateRecoverySettings [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgUpdateRecoverySettings.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Modifica Email' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateRecoverySettingsDTO\" #formUpdateInfos=\"ngForm\" (ngSubmit)=\"formUpdateInfos.valid && doUpdateRecoverySettings()\">\r\n <div class=\"modal-body lastfix\">\r\n <form-input [LabelInputRatio]=\"'3 9'\" [Label]=\"'Email' | localize: lc\" [(ngModel)]=\"UpdateRecoverySettingsDTO.email\" name=\"email\"></form-input>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateRecoverySettings.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">Conferma</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Upload Picture-->\r\n<es-modal #dlgUpdateProfilePicture [Size]=\"'M'\">\r\n <es-modal-head (Close)=\"dlgUpdateProfilePicture.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Carica Avatar' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <form *ngIf=\"UpdateProfilePictureDTO\" #formUpdateProfilePicture=\"ngForm\" (ngSubmit)=\"formUpdateProfilePicture && doUpdateProfilePicture();\">\r\n <div class=\"modal-body lastfix\">\r\n <form-file Label=\"File\" [FancyMode]=\"true\" [(ngModel)]=\"UpdateProfilePictureDTO.image\" name=\"up_file\"></form-file>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" style=\"margin-right: auto;\" (click)=\"onDeleteProfilePicture();\">{{'Rimuovi' | localize : lc}}</button>\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-10\" (click)=\"dlgUpdateProfilePicture.hide();\">{{'Cancel' | localize : lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Save' | localize : lc}}</button>\r\n </div>\r\n </form>\r\n</es-modal>\r\n\r\n<!--Ruoli e Permessi-->\r\n<es-modal #dlgShowAccountRoles [Size]=\"'L'\">\r\n <es-modal-head (Close)=\"dlgShowAccountRoles.hide();\">\r\n <h5 class=\"modal-title pull-left\">{{'Ruoli e Permessi' | localize : lc}}</h5>\r\n </es-modal-head>\r\n <div class=\"modal-body\" style=\"max-height: 600px; overflow-y: auto;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\" *ngIf=\"AccountRoles\">\r\n <labeled-span [Label]=\"'Ruoli'\" Display=\"Vertical\">\r\n <div *ngFor=\"let r of AccountRoles;\">{{r}}</div>\r\n </labeled-span>\r\n </div>\r\n <div class=\"col-md-6\" *ngIf=\"AccountPermissions\">\r\n <labeled-span [Label]=\"'Permessi'\" Display=\"Vertical\">\r\n <div *ngFor=\"let p of AccountPermissions;\">{{p}}</div>\r\n </labeled-span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"dlgShowAccountRoles.hide();\">{{'Chiudi' | localize : lc}}</button>\r\n </div>\r\n</es-modal>", styles: [".app-wideplus{width:100%;text-align:center;border:1px solid #ccc;border-radius:5px;padding:5px}.btn-outline-main-modified{color:#242d3a;border-color:#242d3a;background:transparent}.btn-outline-main-modified:hover{color:#fff;background:#242D3A;border-color:#242d3a}.user-img-container{position:relative;width:200px;margin:auto}.user-img{object-fit:cover;max-height:200px;min-height:200px;min-width:200px;max-width:200px;border-radius:50%;box-shadow:0 8px 6px #1313130a,0 12px 16px #1313130d}.user-img-btn{position:absolute;right:0;width:40px;height:40px;margin-top:-50px}.user-img-btn-body{background-color:#0056b3;color:#fff;border-radius:50%;text-align:center;height:100%;font-size:1.2rem;line-height:2.5rem}.user-roles-btn{position:absolute;top:0;right:2px;font-size:1.2rem;padding:5px;z-index:1;color:#0056b3;cursor:pointer}\n"] }]
|
|
128
128
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TokenService }, { type: i2.MessageService }, { type: i2.ExportService }, { type: i2.UtilityService }, { type: i3.LocalizationService }, { type: i1.AppState }, { type: i1.UserPreferencesService }]; }, propDecorators: { dlgShowAccountRoles: [{
|
|
129
129
|
type: ViewChild,
|
|
130
130
|
args: ["dlgShowAccountRoles"]
|
|
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
138
138
|
type: ViewChild,
|
|
139
139
|
args: ["dlgUpdatePassword"]
|
|
140
140
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcl9pbmZvcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBWSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQWtDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEYsU0FBUztBQUNULE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBVyx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUl0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FB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QkFRTSx1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQW1DSSx5QkFBeUI7c0JBQWhFLFNBQVM7dUJBQUMsMkJBQTJCO2dCQXFCTixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEV4dGVuc2lvbnNNb2R1bGUsIE1lc3NhZ2VTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBVcGRhdGVQYXNzd29yZER0bywgVXNlckFjY291bnQgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcbmltcG9ydCB7IEFwcEZpbGUsIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIlxyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFwcFN0YXRlLCBUb2tlblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuaW1wb3J0IHsgVXNlckluZm9Db21wb25lbnRMb2MgfSBmcm9tIFwiLi91c2VyX2luZm9zLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7IEVzTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi4vZXMtbW9kYWwvZXMtbW9kYWwuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzTW9kYWxIZWFkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2VzLW1vZGFsL2VzLW1vZGFsLWhlYWQvZXMtbW9kYWwtaGVhZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTGFiZWxlZFNwYW5Db21wb25lbnQgfSBmcm9tIFwiLi4vbGFiZWxlZC1zcGFuL2xhYmVsZWQtc3Bhbi5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidXNlci1pbmZvc1wiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwidXNlcl9pbmZvcy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL3VzZXJfaW5mb3MuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogVXNlckluZm9Db21wb25lbnRMb2MgfV0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEZvcm1zTW9kdWxlLCBcclxuICAgICAgICBGb3Jtc0FuZFZhbGlkYXRpb25zTW9kdWxlLCBcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nRm9yLFxyXG4gICAgICAgIExvY2FsaXphdGlvbk1vZHVsZSwgXHJcbiAgICAgICAgRXNNb2RhbENvbXBvbmVudCwgXHJcbiAgICAgICAgRXNNb2RhbEhlYWRDb21wb25lbnQsIFxyXG4gICAgICAgIExhYmVsZWRTcGFuQ29tcG9uZW50LFxyXG4gICAgICAgIEV4dGVuc2lvbnNNb2R1bGUsXHJcbiAgICAgICAgQWNjZXNzQ29udHJvbE1vZHVsZSxcclxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VySW5mb3NDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBBY2NvdW50RGV0YWlsczogVXNlckFjY291bnQ7XHJcbiAgICBwdWJsaWMgQWNjb3VudFJvbGVzOiBzdHJpbmdbXTtcclxuICAgIHB1YmxpYyBBY2NvdW50UGVybWlzc2lvbnM6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qOiBJbmplY3RvciwgcHJpdmF0ZSB0a3M6IFRva2VuU2VydmljZSwgcHVibGljIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgZXhwRXh0czogRXhwb3J0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSwgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwdWJsaWMgX3N0YXRlOiBBcHBTdGF0ZSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBwcm9maWxlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdldEFjY291bnREZXRhaWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjY291bnREZXRhaWxzKCkge1xyXG4gICAgICAgIC8vIFJlY3VwZXJvIGxlIGluZm9ybWF6aW9uaSBBY2NvdW50IHBhcnRlbmRvIGRhbGxhIGlkZW50aXR5XHJcbiAgICAgICAgbGV0IGlkZW50aXR5ID0gdGhpcy50a3MuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgdGhpcy5BY2NvdW50Um9sZXMgPSBpZGVudGl0eS5Sb2xlcztcclxuICAgICAgICB0aGlzLkFjY291bnRQZXJtaXNzaW9ucyA9IGlkZW50aXR5LlBlcm1pc3Npb25zO1xyXG4gICAgICAgIHRoaXMuQWNjb3VudERldGFpbHMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZ2V0QWNjb3VudFByb2ZpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyNyZWdpb24gU2hvdyBSb2xlcyBhbmQgUGVybWlzc2lvbnNcclxuICAgIEBWaWV3Q2hpbGQoXCJkbGdTaG93QWNjb3VudFJvbGVzXCIpIGRsZ1Nob3dBY2NvdW50Um9sZXM6IEVzTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gICAgb25TaG93QWNjb3VudFJvbGVzKCkge1xyXG4gICAgICAgIHRoaXMuZGxnU2hvd0FjY291bnRSb2xlcy5zaG93KCk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFByb2ZpbGUgUGljdHVyZVxyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlXCIpIGRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlOiBFc01vZGFsQ29tcG9uZW50O1xyXG4gICAgcHVibGljIFVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPOiB7IGltYWdlOiBBcHBGaWxlIH0gPSBudWxsO1xyXG5cclxuICAgIHB1YmxpYyBvblVwZGF0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlUHJvZmlsZVBpY3R1cmVEVE8gPSBudWxsO1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUHJvZmlsZVBpY3R1cmVEVE8gPSB7IGltYWdlOiBudWxsIH07XHJcbiAgICAgICAgICAgIHRoaXMuZGxnVXBkYXRlUHJvZmlsZVBpY3R1cmUuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9VcGRhdGVQcm9maWxlUGljdHVyZSh0aGlzLlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPLmltYWdlKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJNb2RpZmljYSBlc2VndWl0YSBjb24gU3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2FcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBEZWxldGUgUHJvZmlsZSBQaWN0dXJlXHJcbiAgICBwdWJsaWMgb25EZWxldGVQcm9maWxlUGljdHVyZSgpIHtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlV2FybmluZ1dpdGhDaG9pY2UoXCJDb25mZXJtYSBlbGltaW5hemlvbmVcIiwgXCJTaSBlJyBjZXJ0aSBkaSB2b2xlciByaW11b3ZlcmUgbCdpbW1hZ2luZSBwcm9maWxvP1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZG9EZWxldGVQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb0RlbGV0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9EZWxldGVQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VDYWxsUmVzdWx0UmVzcG9uc2UocmVzLCBcIkltbWFnaW5lIHByb2ZpbG8gcmltb3NzYSBjb24gc3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgcmltb3ppb25lIGRlbGxhIGltbWFnaW5lIHByb2ZpbG9cIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBVcGRhdGUgUmVjb3ZlcnkgSW5mb1xyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3NcIikgZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5nczogRXNNb2RhbENvbXBvbmVudDtcclxuICAgIHB1YmxpYyBVcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPOiB7IGVtYWlsOiBzdHJpbmcgfSA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIG9uVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncygpIHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVJlY292ZXJ5U2V0dGluZ3NEVE8gPSBudWxsO1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTyA9IHsgZW1haWw6IHRoaXMuQWNjb3VudERldGFpbHMucmVjb3ZlcnllbWFpbCB9O1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3Muc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMucHJvZmlsZS5kb1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3ModGhpcy5VcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPLmVtYWlsKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJNb2RpZmljYSBlc2VndWl0YSBjb24gU3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2FcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFjY291bnREZXRhaWxzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncy5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFBhc3N3b3JkXHJcbiAgICBAVmlld0NoaWxkKFwiZGxnVXBkYXRlUGFzc3dvcmRcIikgZGxnVXBkYXRlUGFzc3dvcmQ6IEVzTW9kYWxDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgVXBkYXRlUGFzc3dvcmREVE86IFVwZGF0ZVBhc3N3b3JkRHRvID0gbnVsbDtcclxuICAgIEN1c3RvbUVycm9yOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG9uVXBkYXRlUGFzc3dvcmQoKSB7XHJcbiAgICAgICAgdGhpcy5VcGRhdGVQYXNzd29yZERUTyA9IG51bGw7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5DdXN0b21FcnJvciA9IFwiXCI7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8gPSBuZXcgVXBkYXRlUGFzc3dvcmREdG8oKTtcclxuICAgICAgICAgICAgdGhpcy5kbGdVcGRhdGVQYXNzd29yZC5zaG93KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvVXBkYXRlUGFzc3dvcmQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuVXBkYXRlUGFzc3dvcmREVE8ubmV3cHdkICE9IHRoaXMuVXBkYXRlUGFzc3dvcmREVE8uY29uZmlybXB3ZClcclxuICAgICAgICAgICAgdGhpcy5DdXN0b21FcnJvciA9IFwiTGUgcGFzc3dvcmQgaW5zZXJpdGUgbm9uIGNvaW5jaWRvbm8uXCI7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9VcGRhdGVQYXNzd29yZCh0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPLm9sZHB3ZCwgdGhpcy5VcGRhdGVQYXNzd29yZERUTy5uZXdwd2QsIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8uY29uZmlybXB3ZCk7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VDYWxsUmVzdWx0UmVzcG9uc2UocmVzLCBcIlBhc3N3b3JkIG1vZGlmaWNhdGEgY29uIFN1Y2Nlc3NvXCIsIFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhIGRlbGxhIFBhc3N3b3JkXCIsXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7IHRoaXMuZGxnVXBkYXRlUGFzc3dvcmQuaGlkZSgpOyB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcbn0iLCI8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgZGlzcGxheTogZmxleDtcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW46IGF1dG87XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW1nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZmlsZS5Qcm9maWxlUGljdHVyZVwiIGFsdD1cInVzZXItaW1nXCIgY2xhc3M9XCJ1c2VyLWltZ1wiIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtcG9pbnRlciB1c2VyLWltZy1idG5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtb3BhY2l0eSB1c2VyLWltZy1idG4tYm9keVwiIChjbGljayk9XCJvblVwZGF0ZVByb2ZpbGVQaWN0dXJlKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbWFyZ2luLXRvcC0xNVwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwiQWNjb3VudERldGFpbHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1ib2R5IGFwcC1uby1tYXJnaW4gYXBwLXBhZGRpbmctMTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICphYz1cIidSOkphY2UgQWRtaW4nXCIgY2xhc3M9XCJ1c2VyLXJvbGVzLWJ0blwiIFttYXRUb29sdGlwXT1cIidWaXN1YWxpenphIFJ1b2xpIGUgUGVybWVzc2knXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiAoY2xpY2spPVwib25TaG93QWNjb3VudFJvbGVzKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWJvb2stdXNlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInVXRlbnRlJyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLnVzZXJuYW1lfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInVGVuYW50JyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLmlkdGVuYW50fX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgYXBwLW1hcmdpbi10b3AtMTBcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInTm9tZScgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy5maXJzdG5hbWV9fTwvbGFiZWxlZC1zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBhcHAtbWFyZ2luLXRvcC0xMFwiPjxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidDb2dub21lJyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLmxhc3RuYW1lfX08L2xhYmVsZWQtc3Bhbj4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtbWFyZ2luLXRvcC0xMFwiPjxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidFbWFpbCcgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy5yZWNvdmVyeWVtYWlsIHx8ICdOb24gZGlzcG9uaWJpbGUnfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTAgcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvblVwZGF0ZVBhc3N3b3JkKClcIj5Nb2RpZmljYSBQYXNzd29yZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25VcGRhdGVSZWNvdmVyeVNldHRpbmdzKClcIj5Nb2RpZmljYSBFbWFpbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS1VcGRhdGUgUGFzc3dvcmQtLT5cclxuPGVzLW1vZGFsICNkbGdVcGRhdGVQYXNzd29yZCBbU2l6ZV09XCInTCdcIj5cclxuICAgIDxlcy1tb2RhbC1oZWFkIChDbG9zZSk9XCJkbGdVcGRhdGVQYXNzd29yZC5oaWRlKCk7XCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+TW9kaWZpY2EgUGFzc3dvcmQ8L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGZvcm0gKm5nSWY9XCJVcGRhdGVQYXNzd29yZERUT1wiICNmb3JtVXBkYXRlUGFzc3dvcmQ9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiZm9ybVVwZGF0ZVBhc3N3b3JkLnZhbGlkICYmIGRvVXBkYXRlUGFzc3dvcmQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGxhc3RmaXhcIj5cclxuICAgICAgICAgICAgPGZvcm0taW5wdXQgW1Bhc3N3b3JkXT1cInRydWVcIiBbTGFiZWxdPVwiJ1Bhc3N3b3JkJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwiVXBkYXRlUGFzc3dvcmREVE8ub2xkcHdkXCIgbmFtZT1cIm9sZHB3XCIgcmVxdWlyZWQ+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUGFzc3dvcmRdPVwidHJ1ZVwiIFtMYWJlbF09XCInTnVvdmEgUGFzc3dvcmQnIHwgbG9jYWxpemU6IGxjXCIgWyhuZ01vZGVsKV09XCJVcGRhdGVQYXNzd29yZERUTy5uZXdwd2RcIiBuYW1lPVwibmV3cHdcIiByZXF1aXJlZD48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgIDxmb3JtLWlucHV0IFtQYXNzd29yZF09XCJ0cnVlXCIgW0xhYmVsXT1cIidDb25mZXJtYSBQYXNzd29yZCcgfCBsb2NhbGl6ZTogbGNcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVBhc3N3b3JkRFRPLmNvbmZpcm1wd2RcIiBuYW1lPVwiY29uZnB3XCIgcmVxdWlyZWQ+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICA8IS0tVmFsaWRhemlvbmUgQ3VzdG9tLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJDdXN0b21FcnJvclwiIGNsYXNzPVwiYXBwLXdoaXRlLXRleHQgYXBwLW1hcmdpbi10b3AtMTUgYXBwLW1hcmdpbi1ib3R0b20tMCBjYXJkIGFwcC1wYWRkaW5nLTEwIGNhcmQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7J0Vycm9yJyB8IGxvY2FsaXplIDogbGN9fTombmJzcDs8L3N0cm9uZz57e0N1c3RvbUVycm9yfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGFwcC1tYXJnaW4tcmlnaHQtMTBcIiAoY2xpY2spPVwiZGxnVXBkYXRlUGFzc3dvcmQuaGlkZSgpO1wiPnt7J0NhbmNlbCcgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5Db25mZXJtYTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG48L2VzLW1vZGFsPlxyXG5cclxuPCEtLVVwZGF0ZSBFeHRyYSBJbmZvLS0+XHJcbjxlcy1tb2RhbCAjZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncyBbU2l6ZV09XCInTCdcIj5cclxuICAgIDxlcy1tb2RhbC1oZWFkIChDbG9zZSk9XCJkbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzLmhpZGUoKTtcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydNb2RpZmljYSBFbWFpbCcgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGZvcm0gKm5nSWY9XCJVcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPXCIgI2Zvcm1VcGRhdGVJbmZvcz1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJmb3JtVXBkYXRlSW5mb3MudmFsaWQgJiYgZG9VcGRhdGVSZWNvdmVyeVNldHRpbmdzKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBsYXN0Zml4XCI+XHJcbiAgICAgICAgICAgIDxmb3JtLWlucHV0IFtMYWJlbElucHV0UmF0aW9dPVwiJzMgOSdcIiBbTGFiZWxdPVwiJ0VtYWlsJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwiVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTy5lbWFpbFwiIG5hbWU9XCJlbWFpbFwiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC0xMFwiIChjbGljayk9XCJkbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzLmhpZGUoKTtcIj57eydDYW5jZWwnIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+Q29uZmVybWE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9lcy1tb2RhbD5cclxuXHJcbjwhLS1VcGxvYWQgUGljdHVyZS0tPlxyXG48ZXMtbW9kYWwgI2RsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlIFtTaXplXT1cIidNJ1wiPlxyXG4gICAgPGVzLW1vZGFsLWhlYWQgKENsb3NlKT1cImRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydDYXJpY2EgQXZhdGFyJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICA8L2VzLW1vZGFsLWhlYWQ+XHJcbiAgICA8Zm9ybSAqbmdJZj1cIlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPXCIgI2Zvcm1VcGRhdGVQcm9maWxlUGljdHVyZT1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJmb3JtVXBkYXRlUHJvZmlsZVBpY3R1cmUgJiYgZG9VcGRhdGVQcm9maWxlUGljdHVyZSgpO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGxhc3RmaXhcIj5cclxuICAgICAgICAgICAgPGZvcm0tZmlsZSBMYWJlbD1cIkZpbGVcIiBbRmFuY3lNb2RlXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPLmltYWdlXCIgbmFtZT1cInVwX2ZpbGVcIj48L2Zvcm0tZmlsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogYXV0bztcIiAoY2xpY2spPVwib25EZWxldGVQcm9maWxlUGljdHVyZSgpO1wiPnt7J1JpbXVvdmknIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC0xMFwiIChjbGljayk9XCJkbGdVcGRhdGVQcm9maWxlUGljdHVyZS5oaWRlKCk7XCI+e3snQ2FuY2VsJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7J1NhdmUnIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZXMtbW9kYWw+XHJcblxyXG48IS0tUnVvbGkgZSBQZXJtZXNzaS0tPlxyXG48ZXMtbW9kYWwgI2RsZ1Nob3dBY2NvdW50Um9sZXMgW1NpemVdPVwiJ0wnXCI+XHJcbiAgICA8ZXMtbW9kYWwtaGVhZCAoQ2xvc2UpPVwiZGxnU2hvd0FjY291bnRSb2xlcy5oaWRlKCk7XCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3snUnVvbGkgZSBQZXJtZXNzaScgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiBzdHlsZT1cIm1heC1oZWlnaHQ6IDYwMHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJBY2NvdW50Um9sZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidSdW9saSdcIiBEaXNwbGF5PVwiVmVydGljYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByIG9mIEFjY291bnRSb2xlcztcIj57e3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbGVkLXNwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cIkFjY291bnRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ1Blcm1lc3NpJ1wiIERpc3BsYXk9XCJWZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHAgb2YgQWNjb3VudFBlcm1pc3Npb25zO1wiPnt7cH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsZWQtc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImRsZ1Nob3dBY2NvdW50Um9sZXMuaGlkZSgpO1wiPnt7J0NoaXVkaScgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2VzLW1vZGFsPiJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcl9pbmZvcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL3VzZXJfaW5mb3MvdXNlcl9pbmZvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBWSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQWtDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEYsU0FBUztBQUNULE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZFLE9BQU8sRUFBVyx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUl0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtREFBbUQsQ0FB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QkFRTSx1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQW1DSSx5QkFBeUI7c0JBQWhFLFNBQVM7dUJBQUMsMkJBQTJCO2dCQXFCTixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UsIEV4dGVuc2lvbnNNb2R1bGUsIE1lc3NhZ2VTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Nb2R1bGUsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBVcGRhdGVQYXNzd29yZER0bywgVXNlckFjY291bnQgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcbmltcG9ydCB7IEFwcEZpbGUsIEZvcm1zQW5kVmFsaWRhdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGVzZmFlbnphL2Zvcm1zLWFuZC12YWxpZGF0aW9uc1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIlxyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFwcFN0YXRlLCBUb2tlblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvc2VydmljZXNcIjtcclxuaW1wb3J0IHsgVXNlckluZm9Db21wb25lbnRMb2MgfSBmcm9tIFwiLi91c2VyX2luZm9zLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbE1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwXCI7XHJcbmltcG9ydCB7IEVzTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi4vZXMtbW9kYWwvZXMtbW9kYWwuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzTW9kYWxIZWFkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2VzLW1vZGFsL2VzLW1vZGFsLWhlYWQvZXMtbW9kYWwtaGVhZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTGFiZWxlZFNwYW5Db21wb25lbnQgfSBmcm9tIFwiLi4vbGFiZWxlZC1zcGFuL2xhYmVsZWQtc3Bhbi5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidXNlci1pbmZvc1wiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwidXNlcl9pbmZvcy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL3VzZXJfaW5mb3MuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogVXNlckluZm9Db21wb25lbnRMb2MgfV0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEZvcm1zTW9kdWxlLCBcclxuICAgICAgICBGb3Jtc0FuZFZhbGlkYXRpb25zTW9kdWxlLCBcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nRm9yLFxyXG4gICAgICAgIExvY2FsaXphdGlvbk1vZHVsZSwgXHJcbiAgICAgICAgRXNNb2RhbENvbXBvbmVudCwgXHJcbiAgICAgICAgRXNNb2RhbEhlYWRDb21wb25lbnQsIFxyXG4gICAgICAgIExhYmVsZWRTcGFuQ29tcG9uZW50LFxyXG4gICAgICAgIEV4dGVuc2lvbnNNb2R1bGUsXHJcbiAgICAgICAgQWNjZXNzQ29udHJvbE1vZHVsZSxcclxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VySW5mb3NDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBBY2NvdW50RGV0YWlsczogVXNlckFjY291bnQ7XHJcbiAgICBwdWJsaWMgQWNjb3VudFJvbGVzOiBzdHJpbmdbXTtcclxuICAgIHB1YmxpYyBBY2NvdW50UGVybWlzc2lvbnM6IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qOiBJbmplY3RvciwgcHJpdmF0ZSB0a3M6IFRva2VuU2VydmljZSwgcHVibGljIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgZXhwRXh0czogRXhwb3J0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSwgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBwdWJsaWMgX3N0YXRlOiBBcHBTdGF0ZSxcclxuICAgICAgICAgICAgICAgIHB1YmxpYyBwcm9maWxlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdldEFjY291bnREZXRhaWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEFjY291bnREZXRhaWxzKCkge1xyXG4gICAgICAgIC8vIFJlY3VwZXJvIGxlIGluZm9ybWF6aW9uaSBBY2NvdW50IHBhcnRlbmRvIGRhbGxhIGlkZW50aXR5XHJcbiAgICAgICAgbGV0IGlkZW50aXR5ID0gdGhpcy50a3MuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgdGhpcy5BY2NvdW50Um9sZXMgPSBpZGVudGl0eS5Sb2xlcztcclxuICAgICAgICB0aGlzLkFjY291bnRQZXJtaXNzaW9ucyA9IGlkZW50aXR5LlBlcm1pc3Npb25zO1xyXG4gICAgICAgIHRoaXMuQWNjb3VudERldGFpbHMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZ2V0QWNjb3VudFByb2ZpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyNyZWdpb24gU2hvdyBSb2xlcyBhbmQgUGVybWlzc2lvbnNcclxuICAgIEBWaWV3Q2hpbGQoXCJkbGdTaG93QWNjb3VudFJvbGVzXCIpIGRsZ1Nob3dBY2NvdW50Um9sZXM6IEVzTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gICAgb25TaG93QWNjb3VudFJvbGVzKCkge1xyXG4gICAgICAgIHRoaXMuZGxnU2hvd0FjY291bnRSb2xlcy5zaG93KCk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFByb2ZpbGUgUGljdHVyZVxyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlXCIpIGRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlOiBFc01vZGFsQ29tcG9uZW50O1xyXG4gICAgcHVibGljIFVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPOiB7IGltYWdlOiBBcHBGaWxlIH0gPSBudWxsO1xyXG5cclxuICAgIHB1YmxpYyBvblVwZGF0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIHRoaXMuVXBkYXRlUHJvZmlsZVBpY3R1cmVEVE8gPSBudWxsO1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUHJvZmlsZVBpY3R1cmVEVE8gPSB7IGltYWdlOiBudWxsIH07XHJcbiAgICAgICAgICAgIHRoaXMuZGxnVXBkYXRlUHJvZmlsZVBpY3R1cmUuc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9VcGRhdGVQcm9maWxlUGljdHVyZSh0aGlzLlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPLmltYWdlKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJNb2RpZmljYSBlc2VndWl0YSBjb24gU3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2FcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBEZWxldGUgUHJvZmlsZSBQaWN0dXJlXHJcbiAgICBwdWJsaWMgb25EZWxldGVQcm9maWxlUGljdHVyZSgpIHtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlV2FybmluZ1dpdGhDaG9pY2UoXCJDb25mZXJtYSBlbGltaW5hemlvbmVcIiwgXCJTaSBlJyBjZXJ0aSBkaSB2b2xlciByaW11b3ZlcmUgbCdpbW1hZ2luZSBwcm9maWxvP1wiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZG9EZWxldGVQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb0RlbGV0ZVByb2ZpbGVQaWN0dXJlKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9EZWxldGVQcm9maWxlUGljdHVyZSgpO1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VDYWxsUmVzdWx0UmVzcG9uc2UocmVzLCBcIkltbWFnaW5lIHByb2ZpbG8gcmltb3NzYSBjb24gc3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgcmltb3ppb25lIGRlbGxhIGltbWFnaW5lIHByb2ZpbG9cIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBVcGRhdGUgUmVjb3ZlcnkgSW5mb1xyXG4gICAgQFZpZXdDaGlsZChcImRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3NcIikgZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5nczogRXNNb2RhbENvbXBvbmVudDtcclxuICAgIHB1YmxpYyBVcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPOiB7IGVtYWlsOiBzdHJpbmcgfSA9IG51bGw7XHJcblxyXG4gICAgcHVibGljIG9uVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncygpIHtcclxuICAgICAgICB0aGlzLlVwZGF0ZVJlY292ZXJ5U2V0dGluZ3NEVE8gPSBudWxsO1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTyA9IHsgZW1haWw6IHRoaXMuQWNjb3VudERldGFpbHMucmVjb3ZlcnllbWFpbCB9O1xyXG4gICAgICAgICAgICB0aGlzLmRsZ1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3Muc2hvdygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkb1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3MoKSB7XHJcbiAgICAgICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMucHJvZmlsZS5kb1VwZGF0ZVJlY292ZXJ5U2V0dGluZ3ModGhpcy5VcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPLmVtYWlsKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlQ2FsbFJlc3VsdFJlc3BvbnNlKHJlcywgXCJNb2RpZmljYSBlc2VndWl0YSBjb24gU3VjY2Vzc29cIiwgXCJFcnJvcmkgbmVsbGEgbW9kaWZpY2FcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldEFjY291bnREZXRhaWxzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncy5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gVXBkYXRlIFBhc3N3b3JkXHJcbiAgICBAVmlld0NoaWxkKFwiZGxnVXBkYXRlUGFzc3dvcmRcIikgZGxnVXBkYXRlUGFzc3dvcmQ6IEVzTW9kYWxDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgVXBkYXRlUGFzc3dvcmREVE86IFVwZGF0ZVBhc3N3b3JkRHRvID0gbnVsbDtcclxuICAgIEN1c3RvbUVycm9yOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIG9uVXBkYXRlUGFzc3dvcmQoKSB7XHJcbiAgICAgICAgdGhpcy5VcGRhdGVQYXNzd29yZERUTyA9IG51bGw7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5DdXN0b21FcnJvciA9IFwiXCI7XHJcbiAgICAgICAgICAgIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8gPSBuZXcgVXBkYXRlUGFzc3dvcmREdG8oKTtcclxuICAgICAgICAgICAgdGhpcy5kbGdVcGRhdGVQYXNzd29yZC5zaG93KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGRvVXBkYXRlUGFzc3dvcmQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuVXBkYXRlUGFzc3dvcmREVE8ubmV3cHdkICE9IHRoaXMuVXBkYXRlUGFzc3dvcmREVE8uY29uZmlybXB3ZClcclxuICAgICAgICAgICAgdGhpcy5DdXN0b21FcnJvciA9IFwiTGUgcGFzc3dvcmQgaW5zZXJpdGUgbm9uIGNvaW5jaWRvbm8uXCI7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLnByb2ZpbGUuZG9VcGRhdGVQYXNzd29yZCh0aGlzLlVwZGF0ZVBhc3N3b3JkRFRPLm9sZHB3ZCwgdGhpcy5VcGRhdGVQYXNzd29yZERUTy5uZXdwd2QsIHRoaXMuVXBkYXRlUGFzc3dvcmREVE8uY29uZmlybXB3ZCk7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VDYWxsUmVzdWx0UmVzcG9uc2UocmVzLCBcIlBhc3N3b3JkIG1vZGlmaWNhdGEgY29uIFN1Y2Nlc3NvXCIsIFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhIGRlbGxhIFBhc3N3b3JkXCIsXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7IHRoaXMuZGxnVXBkYXRlUGFzc3dvcmQuaGlkZSgpOyB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8jZW5kcmVnaW9uXHJcbn0iLCI8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgZGlzcGxheTogZmxleDtcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW46IGF1dG87XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW1nLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZmlsZS5Qcm9maWxlUGljdHVyZVwiIGFsdD1cInVzZXItaW1nXCIgY2xhc3M9XCJ1c2VyLWltZ1wiIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtcG9pbnRlciB1c2VyLWltZy1idG5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtb3BhY2l0eSB1c2VyLWltZy1idG4tYm9keVwiIChjbGljayk9XCJvblVwZGF0ZVByb2ZpbGVQaWN0dXJlKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtbWFyZ2luLXRvcC0xNVwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwiQWNjb3VudERldGFpbHNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1ib2R5IGFwcC1uby1tYXJnaW4gYXBwLXBhZGRpbmctMTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICphYz1cIidSOkphY2UgQWRtaW4nXCIgY2xhc3M9XCJ1c2VyLXJvbGVzLWJ0blwiIFttYXRUb29sdGlwXT1cIidWaXN1YWxpenphIFJ1b2xpIGUgUGVybWVzc2knXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiAoY2xpY2spPVwib25TaG93QWNjb3VudFJvbGVzKCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWJvb2stdXNlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInVXRlbnRlJyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLnVzZXJuYW1lfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInVGVuYW50JyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLnRlbmFudGlkfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgYXBwLW1hcmdpbi10b3AtMTBcIj48bGFiZWxlZC1zcGFuIFtMYWJlbF09XCInTm9tZScgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy5maXJzdG5hbWV9fTwvbGFiZWxlZC1zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBhcHAtbWFyZ2luLXRvcC0xMFwiPjxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidDb2dub21lJyB8IGxvY2FsaXplIDogbGNcIiBEaXNwbGF5PVwiVmVydGljYWxcIj57e0FjY291bnREZXRhaWxzLmxhc3RuYW1lfX08L2xhYmVsZWQtc3Bhbj4gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtbWFyZ2luLXRvcC0xMFwiPjxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidFbWFpbCcgfCBsb2NhbGl6ZSA6IGxjXCIgRGlzcGxheT1cIlZlcnRpY2FsXCI+e3tBY2NvdW50RGV0YWlscy5yZWNvdmVyeWVtYWlsIHx8ICdOb24gZGlzcG9uaWJpbGUnfX08L2xhYmVsZWQtc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTAgcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvblVwZGF0ZVBhc3N3b3JkKClcIj5Nb2RpZmljYSBQYXNzd29yZDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib25VcGRhdGVSZWNvdmVyeVNldHRpbmdzKClcIj5Nb2RpZmljYSBFbWFpbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS1VcGRhdGUgUGFzc3dvcmQtLT5cclxuPGVzLW1vZGFsICNkbGdVcGRhdGVQYXNzd29yZCBbU2l6ZV09XCInTCdcIj5cclxuICAgIDxlcy1tb2RhbC1oZWFkIChDbG9zZSk9XCJkbGdVcGRhdGVQYXNzd29yZC5oaWRlKCk7XCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+TW9kaWZpY2EgUGFzc3dvcmQ8L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGZvcm0gKm5nSWY9XCJVcGRhdGVQYXNzd29yZERUT1wiICNmb3JtVXBkYXRlUGFzc3dvcmQ9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiZm9ybVVwZGF0ZVBhc3N3b3JkLnZhbGlkICYmIGRvVXBkYXRlUGFzc3dvcmQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGxhc3RmaXhcIj5cclxuICAgICAgICAgICAgPGZvcm0taW5wdXQgW1Bhc3N3b3JkXT1cInRydWVcIiBbTGFiZWxdPVwiJ1Bhc3N3b3JkJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwiVXBkYXRlUGFzc3dvcmREVE8ub2xkcHdkXCIgbmFtZT1cIm9sZHB3XCIgcmVxdWlyZWQ+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICA8Zm9ybS1pbnB1dCBbUGFzc3dvcmRdPVwidHJ1ZVwiIFtMYWJlbF09XCInTnVvdmEgUGFzc3dvcmQnIHwgbG9jYWxpemU6IGxjXCIgWyhuZ01vZGVsKV09XCJVcGRhdGVQYXNzd29yZERUTy5uZXdwd2RcIiBuYW1lPVwibmV3cHdcIiByZXF1aXJlZD48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgIDxmb3JtLWlucHV0IFtQYXNzd29yZF09XCJ0cnVlXCIgW0xhYmVsXT1cIidDb25mZXJtYSBQYXNzd29yZCcgfCBsb2NhbGl6ZTogbGNcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVBhc3N3b3JkRFRPLmNvbmZpcm1wd2RcIiBuYW1lPVwiY29uZnB3XCIgcmVxdWlyZWQ+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICA8IS0tVmFsaWRhemlvbmUgQ3VzdG9tLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJDdXN0b21FcnJvclwiIGNsYXNzPVwiYXBwLXdoaXRlLXRleHQgYXBwLW1hcmdpbi10b3AtMTUgYXBwLW1hcmdpbi1ib3R0b20tMCBjYXJkIGFwcC1wYWRkaW5nLTEwIGNhcmQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7J0Vycm9yJyB8IGxvY2FsaXplIDogbGN9fTombmJzcDs8L3N0cm9uZz57e0N1c3RvbUVycm9yfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGFwcC1tYXJnaW4tcmlnaHQtMTBcIiAoY2xpY2spPVwiZGxnVXBkYXRlUGFzc3dvcmQuaGlkZSgpO1wiPnt7J0NhbmNlbCcgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5Db25mZXJtYTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG48L2VzLW1vZGFsPlxyXG5cclxuPCEtLVVwZGF0ZSBFeHRyYSBJbmZvLS0+XHJcbjxlcy1tb2RhbCAjZGxnVXBkYXRlUmVjb3ZlcnlTZXR0aW5ncyBbU2l6ZV09XCInTCdcIj5cclxuICAgIDxlcy1tb2RhbC1oZWFkIChDbG9zZSk9XCJkbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzLmhpZGUoKTtcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydNb2RpZmljYSBFbWFpbCcgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGZvcm0gKm5nSWY9XCJVcGRhdGVSZWNvdmVyeVNldHRpbmdzRFRPXCIgI2Zvcm1VcGRhdGVJbmZvcz1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJmb3JtVXBkYXRlSW5mb3MudmFsaWQgJiYgZG9VcGRhdGVSZWNvdmVyeVNldHRpbmdzKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBsYXN0Zml4XCI+XHJcbiAgICAgICAgICAgIDxmb3JtLWlucHV0IFtMYWJlbElucHV0UmF0aW9dPVwiJzMgOSdcIiBbTGFiZWxdPVwiJ0VtYWlsJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwiVXBkYXRlUmVjb3ZlcnlTZXR0aW5nc0RUTy5lbWFpbFwiIG5hbWU9XCJlbWFpbFwiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC0xMFwiIChjbGljayk9XCJkbGdVcGRhdGVSZWNvdmVyeVNldHRpbmdzLmhpZGUoKTtcIj57eydDYW5jZWwnIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+Q29uZmVybWE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuPC9lcy1tb2RhbD5cclxuXHJcbjwhLS1VcGxvYWQgUGljdHVyZS0tPlxyXG48ZXMtbW9kYWwgI2RsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlIFtTaXplXT1cIidNJ1wiPlxyXG4gICAgPGVzLW1vZGFsLWhlYWQgKENsb3NlKT1cImRsZ1VwZGF0ZVByb2ZpbGVQaWN0dXJlLmhpZGUoKTtcIj5cclxuICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydDYXJpY2EgQXZhdGFyJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICA8L2VzLW1vZGFsLWhlYWQ+XHJcbiAgICA8Zm9ybSAqbmdJZj1cIlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPXCIgI2Zvcm1VcGRhdGVQcm9maWxlUGljdHVyZT1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJmb3JtVXBkYXRlUHJvZmlsZVBpY3R1cmUgJiYgZG9VcGRhdGVQcm9maWxlUGljdHVyZSgpO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGxhc3RmaXhcIj5cclxuICAgICAgICAgICAgPGZvcm0tZmlsZSBMYWJlbD1cIkZpbGVcIiBbRmFuY3lNb2RlXT1cInRydWVcIiBbKG5nTW9kZWwpXT1cIlVwZGF0ZVByb2ZpbGVQaWN0dXJlRFRPLmltYWdlXCIgbmFtZT1cInVwX2ZpbGVcIj48L2Zvcm0tZmlsZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogYXV0bztcIiAoY2xpY2spPVwib25EZWxldGVQcm9maWxlUGljdHVyZSgpO1wiPnt7J1JpbXVvdmknIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC0xMFwiIChjbGljayk9XCJkbGdVcGRhdGVQcm9maWxlUGljdHVyZS5oaWRlKCk7XCI+e3snQ2FuY2VsJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7J1NhdmUnIHwgbG9jYWxpemUgOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZXMtbW9kYWw+XHJcblxyXG48IS0tUnVvbGkgZSBQZXJtZXNzaS0tPlxyXG48ZXMtbW9kYWwgI2RsZ1Nob3dBY2NvdW50Um9sZXMgW1NpemVdPVwiJ0wnXCI+XHJcbiAgICA8ZXMtbW9kYWwtaGVhZCAoQ2xvc2UpPVwiZGxnU2hvd0FjY291bnRSb2xlcy5oaWRlKCk7XCI+XHJcbiAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3snUnVvbGkgZSBQZXJtZXNzaScgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgPC9lcy1tb2RhbC1oZWFkPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIiBzdHlsZT1cIm1heC1oZWlnaHQ6IDYwMHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJBY2NvdW50Um9sZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbGVkLXNwYW4gW0xhYmVsXT1cIidSdW9saSdcIiBEaXNwbGF5PVwiVmVydGljYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByIG9mIEFjY291bnRSb2xlcztcIj57e3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbGVkLXNwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cIkFjY291bnRQZXJtaXNzaW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsZWQtc3BhbiBbTGFiZWxdPVwiJ1Blcm1lc3NpJ1wiIERpc3BsYXk9XCJWZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHAgb2YgQWNjb3VudFBlcm1pc3Npb25zO1wiPnt7cH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsZWQtc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImRsZ1Nob3dBY2NvdW50Um9sZXMuaGlkZSgpO1wiPnt7J0NoaXVkaScgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2VzLW1vZGFsPiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class UserAccount {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2RvbWFpbi9zcmMvbW9kZWxzL3VzZXIvVXNlckFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7Q0FzQnZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXJBY2NvdW50IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICB0ZW5hbnRpZDogc3RyaW5nO1xyXG4gICAgdXNlcm5hbWU6IHN0cmluZztcclxuICAgIHR5cGVpZDogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgZHR2YWxpZGZyb206IERhdGU7XHJcbiAgICBkdHZhbGlkdG86IERhdGU7XHJcbiAgICBkdGxvY2s6IERhdGU7XHJcbiAgICBsb2NrcmVhc29uOiBzdHJpbmc7XHJcbiAgICB1c2VyaWQ6IHN0cmluZztcclxuICAgIHVzZXJkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgdXVpZDogc3RyaW5nO1xyXG4gICAgZmlyc3RuYW1lOiBzdHJpbmc7XHJcbiAgICBsYXN0bmFtZTogc3RyaW5nO1xyXG4gICAgcmVjb3ZlcnllbWFpbDogc3RyaW5nO1xyXG4gICAgcmVjb3ZlcnlwaG9uZTogc3RyaW5nO1xyXG4gICAgZHRvdHRleHBpcmF0aW9uOiBEYXRlO1xyXG4gICAgZHRsYXN0bG9naW46IERhdGU7XHJcbiAgICBsYXN0bG9naW5hdHRlbXB0czogbnVtYmVyO1xyXG4gICAgaXNsb2NrZWQ6IGJvb2xlYW47XHJcbiAgICBpc3ZhbGlkOiBib29sZWFuO1xyXG59Il19
|