@acorex/modules 18.0.14 → 18.0.15
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/application-management/index.d.ts +8 -0
- package/application-management/lib/application-management-mock-data.d.ts +75 -0
- package/application-management/lib/application-management.service.d.ts +21 -0
- package/application-management/lib/application-module.entity.d.ts +3 -0
- package/application-management/lib/applications.entity.d.ts +3 -0
- package/application-management/lib/edition.entity.d.ts +3 -0
- package/application-management/lib/entity.entity.d.ts +3 -0
- package/application-management/lib/feature.entity.d.ts +3 -0
- package/application-management/lib/modules.entity.d.ts +3 -0
- package/application-management/lib/permission.entity.d.ts +3 -0
- package/esm2022/application-management/index.mjs +9 -1
- package/esm2022/application-management/lib/application-management-mock-data.mjs +89 -0
- package/esm2022/application-management/lib/application-management.service.mjs +60 -0
- package/esm2022/application-management/lib/application-module.entity.mjs +273 -0
- package/esm2022/application-management/lib/applications.entity.mjs +311 -0
- package/esm2022/application-management/lib/edition.entity.mjs +284 -0
- package/esm2022/application-management/lib/entity.entity.mjs +284 -0
- package/esm2022/application-management/lib/feature.entity.mjs +284 -0
- package/esm2022/application-management/lib/modules.entity.mjs +324 -0
- package/esm2022/application-management/lib/permission.entity.mjs +284 -0
- package/esm2022/auth/lib/account/account.module.mjs +1 -6
- package/esm2022/backend/lib/auth/oidc/oidc.strategy.mjs +2 -3
- package/esm2022/backend/lib/data/api/data-provider.mjs +5 -3
- package/fesm2022/acorex-modules-application-management.mjs +2165 -2
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DDSvztIU.mjs → acorex-modules-auth-acorex-modules-auth-BD7I4S8c.mjs} +8 -13
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DDSvztIU.mjs.map → acorex-modules-auth-acorex-modules-auth-BD7I4S8c.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CQ87lFLo.mjs → acorex-modules-auth-app-chooser.component-Cfl1D1Cw.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CQ87lFLo.mjs.map → acorex-modules-auth-app-chooser.component-Cfl1D1Cw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-Ceocgnz0.mjs → acorex-modules-auth-login.module-BQG4ObmU.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-Ceocgnz0.mjs.map → acorex-modules-auth-login.module-BQG4ObmU.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-D30jFVFm.mjs → acorex-modules-auth-master.layout-DoPCP7C0.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-D30jFVFm.mjs.map → acorex-modules-auth-master.layout-DoPCP7C0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-QQakXucW.mjs → acorex-modules-auth-password.component-CfhiS2hO.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-QQakXucW.mjs.map → acorex-modules-auth-password.component-CfhiS2hO.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DvmIgK3z.mjs → acorex-modules-auth-password.component-fyMD7oKR.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-password.component-DvmIgK3z.mjs.map → acorex-modules-auth-password.component-fyMD7oKR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-Bu1uHALz.mjs → acorex-modules-auth-routes-95DQOnjS.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-Bu1uHALz.mjs.map → acorex-modules-auth-routes-95DQOnjS.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-CEcPMx4l.mjs → acorex-modules-auth-two-factor.module-BkErlA-n.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-two-factor.module-CEcPMx4l.mjs.map → acorex-modules-auth-two-factor.module-BkErlA-n.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-backend.mjs +5 -4
- package/fesm2022/acorex-modules-backend.mjs.map +1 -1
- package/package.json +7 -7
@@ -10,11 +10,6 @@ import * as i1 from "@acorex/platform/common";
|
|
10
10
|
const canActivateTenantChooser = async (route, state) => {
|
11
11
|
const sessionService = inject(AXPSessionService);
|
12
12
|
const router = inject(Router);
|
13
|
-
const sessionDate = await sessionService.getSessionData();
|
14
|
-
// if tenantn exist in session skip choose tenant
|
15
|
-
if (sessionDate?.tenant && sessionDate.tenant.id) {
|
16
|
-
return router.createUrlTree(['/auth/account/app-chooser']);
|
17
|
-
}
|
18
13
|
const tenants = await firstValueFrom(sessionService.tenants$);
|
19
14
|
if (tenants.length == 0) {
|
20
15
|
return router.createUrlTree(['/auth/login']);
|
@@ -108,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
108
103
|
],
|
109
104
|
}]
|
110
105
|
}] });
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXV0aC9zcmMvbGliL2FjY291bnQvYWNjb3VudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBeUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQStCLE1BQU0saUJBQWlCLENBQUM7QUFDbkksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRS9FLE1BQU0sd0JBQXdCLEdBQWtCLEtBQUssRUFBRSxLQUE2QixFQUFFLEtBQTBCLEVBQUUsRUFBRTtJQUNsSCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxj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QUFFLDJCQUEyQjtpQ0FDdkM7NkJBQ0Y7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLE1BQU07NEJBQ2YsS0FBSyxFQUFFLElBQUk7NEJBQ1gsVUFBVSxFQUFFLFlBQVk7eUJBQ3pCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQXV0aEd1YXJkLCBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBDb21wb25lbnRTbG90TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUk9VVEVTLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSwgUm91dGVyU3RhdGVTbmFwc2hvdCwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWE1BcHBDaG9vc2VyU2xvdENvbXBvbmVudCB9IGZyb20gJy4vYXBwLWNob29zZXIvYXBwLWNob29zZXItc2xvdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNQXV0aFByb2ZpbGVTbG90Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9maWxlL3Byb2ZpbGUtc2xvdC5jb21wb25lbnQnO1xuXG5jb25zdCBjYW5BY3RpdmF0ZVRlbmFudENob29zZXI6IENhbkFjdGl2YXRlRm4gPSBhc3luYyAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSA9PiB7XG4gIGNvbnN0IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgY29uc3QgdGVuYW50cyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHNlc3Npb25TZXJ2aWNlLnRlbmFudHMkKTtcbiAgaWYgKHRlbmFudHMubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm4gcm91dGVyLmNyZWF0ZVVybFRyZWUoWycvYXV0aC9sb2dpbiddKTtcbiAgfVxuICBpZiAodGVuYW50cy5sZW5ndGggPT0gMSkge1xuICAgIGF3YWl0IHNlc3Npb25TZXJ2aWNlLnNldFRlbmFudCh0ZW5hbnRzWzBdKTtcbiAgICByZXR1cm4gcm91dGVyLmNyZWF0ZVVybFRyZWUoWycvYXV0aC9hY2NvdW50L2FwcC1jaG9vc2VyJ10pO1xuICB9XG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgY2FuQWN0aXZhdGVBcHBDaG9vc2VyOiBDYW5BY3RpdmF0ZUZuID0gYXN5bmMgKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkgPT4ge1xuICBjb25zdCBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBjb25zdCBhcHBzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb25zJCk7XG4gIGlmIChhcHBzLmxlbmd0aCA9PSAwKSB7XG4gICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2F1dGgvbG9naW4nXSk7XG4gIH1cbiAgaWYgKGFwcHMubGVuZ3RoID09IDEpIHtcbiAgICBhd2FpdCBzZXNzaW9uU2VydmljZS5zZXRBcHBsaWNhdGlvbihhcHBzWzBdKTtcbiAgICByZXR1cm4gcm91dGVyLmNyZWF0ZVVybFRyZWUoW2AvJHthcHBzWzBdLm5hbWV9L2hvbWVgXSk7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5mdW5jdGlvbiByb3V0ZXNGYWNvcnkoKSB7XG4gIGxldCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xuICByb3V0ZXMgPSBbXG4gICAge1xuICAgICAgcGF0aDogJ3RlbmFudC1jaG9vc2VyJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90ZW5hbnQtY2hvb3Nlci90ZW5hbnQtY2hvb3Nlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUEF1dGhUZW5hbnRDaG9vc2VyQ29tcG9uZW50KSxcbiAgICAgIGNhbkFjdGl2YXRlOiBbQVhQQXV0aEd1YXJkLCBjYW5BY3RpdmF0ZVRlbmFudENob29zZXJdLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJ2FwcC1jaG9vc2VyJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9hcHAtY2hvb3Nlci9hcHAtY2hvb3Nlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUEF1dGhBcHBDaG9vc2VyQ29tcG9uZW50KSxcbiAgICAgIGNhbkFjdGl2YXRlOiBbQVhQQXV0aEd1YXJkLCBjYW5BY3RpdmF0ZUFwcENob29zZXJdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgLy9cbiAgICBBWFBDb21wb25lbnRTbG90TW9kdWxlLmZvckNoaWxkKHtcbiAgICAgICdoZWFkZXItZW5kJzogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2FwcC1jaG9zZXInLFxuICAgICAgICAgIGNvbXBvbmVudDogQVhNQXBwQ2hvb3NlclNsb3RDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJvZmlsZScsXG4gICAgICAgICAgY29tcG9uZW50OiBBWE1BdXRoUHJvZmlsZVNsb3RDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9VVEVTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiByb3V0ZXNGYWNvcnksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWNjb3VudE1vZHVsZSB7IH1cbiJdfQ==
|
@@ -101,10 +101,9 @@ export class AXMOidcStrategy {
|
|
101
101
|
}
|
102
102
|
}
|
103
103
|
async signout() {
|
104
|
-
this.logout();
|
104
|
+
//this.logout();
|
105
105
|
}
|
106
106
|
async refreshToken(context) {
|
107
|
-
console.log('context.tenant', context.tenant);
|
108
107
|
try {
|
109
108
|
await this.configureOAuth();
|
110
109
|
const refreshResult = await this.refresh(context.tenant?.id, context.application?.id);
|
@@ -215,4 +214,4 @@ export class AXMOidcStrategy {
|
|
215
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMOidcStrategy, decorators: [{
|
216
215
|
type: Injectable
|
217
216
|
}] });
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvYXV0aC9vaWRjL29pZGMuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFNTCxpQkFBaUIsR0FHbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxtQkFBYyxHQUFtQixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxpQkFBWSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWlPL0M7SUE1TlEsS0FBSyxDQUFDLGNBQWM7UUFDekIsSUFBSSxJQUFJLENBQUMsdUJBQXVCO1lBQUUsT0FBTztRQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7UUFDbkQsQ0FBQztRQUVE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LENBQUMsZUFBZSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUNNLHFCQUFxQixDQUFDLG1CQUEyQjtRQUN0RCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ08sTUFBTTtRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFBSSxJQUFJO1FBQ04sT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs4R0FsT1UsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNQXV0aENvbmZpZ3MsIEFYTV9BVVRIX0NPTkZJR19UT0tFTiB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEF1dGhTdHJhdGVneSxcbiAgQVhQQmFzZUNyZWRlbnRpYWxzLFxuICBBWFBSZWZyZXNoVG9rZW5SZXN1bHQsXG4gIEFYUFNlc3Npb25Db250ZXh0LFxuICBBWFBTZXNzaW9uRGF0YSxcbiAgQVhQU2Vzc2lvblNlcnZpY2UsXG4gIEFYUFNpZ25JblJlc3VsdCxcbiAgQVhQVXNlcixcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1PaWRjU3RyYXRlZ3kgaW1wbGVtZW50cyBBWFBBdXRoU3RyYXRlZ3kge1xuICBwcml2YXRlIGFYTUF1dGhDb25maWdzOiBBWE1BdXRoQ29uZmlncyA9IGluamVjdChBWE1fQVVUSF9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHVibGljIHVzZXJJbmZvOiBhbnk7XG4gIHB1YmxpYyBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnO1xuICBwdWJsaWMgb3BlbmlkQ29uZmlndXJhdGlvbkluZm86IGFueTsgLy8gY2xhcmlmeSB0aGUgdHlwZSBpZiBwb3NzaWJsZVxuXG4gIHB1YmxpYyBhc3luYyBjb25maWd1cmVPQXV0aCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5vcGVuaWRDb25maWd1cmF0aW9uSW5mbykgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLmF1dGhDb25maWcpIHtcbiAgICAgIGlmICghdGhpcy5hWE1BdXRoQ29uZmlncy5hdXRoQ29uZmlnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aENvbmZpZyBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmF1dGhDb25maWcgPSB0aGlzLmFYTUF1dGhDb25maWdzLmF1dGhDb25maWc7XG4gICAgfVxuXG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuY29uZmlndXJlKHRoaXMuYXV0aENvbmZpZyk7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2Uuc2V0U3RvcmFnZShsb2NhbFN0b3JhZ2UpO1xuXG4gICAgdGhpcy5vcGVuaWRDb25maWd1cmF0aW9uSW5mbyA9IGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLmxvYWREaXNjb3ZlcnlEb2N1bWVudCgpO1xuXG4gICAgaWYgKCF0aGlzLm9wZW5pZENvbmZpZ3VyYXRpb25JbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZW5pZENvbmZpZ3VyYXRpb25JbmZvIGlzIG1pc3NpbmcnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMuc3Vic2NyaWJlKGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50JywgZXZlbnQpO1xuICAgICAgLy8gaWYgKGV2ZW50LnR5cGUgPT09ICd0b2tlbl9yZWNlaXZlZCcpIHtcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ1Rva2VuIGhhcyBiZWVuIHJlZnJlc2hlZCcpO1xuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKGV2ZW50LnR5cGUgPT09ICd0b2tlbl9leHBpcmVzJykge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnVG9rZW4gaXMgYWJvdXQgdG8gZXhwaXJlLiBUcmlnZ2VyaW5nIHNpbGVudCByZWZyZXNoLi4uJyk7XG4gICAgICAvLyB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBvaWRjSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEFYUFNlc3Npb25TZXJ2aWNlLlNFU1NJT05fS0VZKTtcblxuICAgIGlmIChvaWRjSnNvbikge1xuICAgICAgY29uc3QgYXV0aERhdGEgPSBKU09OLnBhcnNlKG9pZGNKc29uKSBhcyBBWFBTZXNzaW9uRGF0YTtcbiAgICAgIGlmIChhdXRoRGF0YSkge1xuICAgICAgICB0aGlzLnNldFNlcnZpY2VQcm9wcyhhdXRoRGF0YSk7XG5cbiAgICAgICAgaWYgKGF1dGhEYXRhLmV4cGlyZXNJbiAmJiBuZXcgRGF0ZShhdXRoRGF0YS5leHBpcmVzSW4pIDwgbmV3IERhdGUoKSkge1xuICAgICAgICAgIGlmIChhdXRoRGF0YS5leHBpcmVzSW4pIHtcbiAgICAgICAgICAgIC8vIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNpZ25pbihjcmVkZW50aWFsczogQVhQVXNlclBhc3NDcmVkZW50aWFscyk6IFByb21pc2U8QVhQU2lnbkluUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmVPQXV0aCgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib2R5ID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAuc2V0KCdncmFudF90eXBlJywgJ3Bhc3N3b3JkJylcbiAgICAgICAgLnNldCgnY2xpZW50X2lkJywgdGhpcy5hdXRoQ29uZmlnLmNsaWVudElkISlcbiAgICAgICAgLnNldCgnY2xpZW50X3NlY3JldCcsIHRoaXMuYXV0aENvbmZpZy5kdW1teUNsaWVudFNlY3JldCEpXG4gICAgICAgIC5zZXQoJ3VzZXJuYW1lJywgY3JlZGVudGlhbHMudXNlcm5hbWUpXG4gICAgICAgIC5zZXQoJ3Bhc3N3b3JkJywgY3JlZGVudGlhbHMucGFzc3dvcmQpXG4gICAgICAgIC5zZXQoJ3Njb3BlJywgdGhpcy5hdXRoQ29uZmlnLnNjb3BlISk7XG5cbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8SUF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsPih0aGlzLm9wZW5pZENvbmZpZ3VyYXRpb25JbmZvLmluZm8uZGlzY292ZXJ5RG9jdW1lbnQudG9rZW5fZW5kcG9pbnQsIGJvZHkudG9TdHJpbmcoKSwgeyBoZWFkZXJzIH0pXG4gICAgICApO1xuXG4gICAgICAvLyBjb25zdCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEocmVzcG9uc2UpO1xuICAgICAgdGhpcy5zZXRTZXJ2aWNlUHJvcHMoe1xuICAgICAgICBhY2Nlc3NUb2tlbjogcmVzcG9uc2UuYWNjZXNzX3Rva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGlkVG9rZW46IHJlc3BvbnNlLmlkX3Rva2VuLFxuICAgICAgICBleHBpcmVzSW46IHRoaXMuY2FsY3VsYXRlRXhwaXJlSW5EYXRlKHJlc3BvbnNlLmV4cGlyZXNfaW4gPz8gMCksXG4gICAgICB9IGFzIEFYUFNlc3Npb25EYXRhKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VlZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuOiByZXNwb25zZS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgZXhwaXJlc0luOiB0aGlzLmNhbGN1bGF0ZUV4cGlyZUluRGF0ZShyZXNwb25zZS5leHBpcmVzX2luID8/IDApLFxuICAgICAgICAgIGlkVG9rZW46IHJlc3BvbnNlLmlkX3Rva2VuLFxuICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVzcG9uc2UucmVmcmVzaF90b2tlbiEsXG4gICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgaWQ6IHJlc3BvbnNlLnN1YixcbiAgICAgICAgICAgIHRpdGxlOiByZXNwb25zZS5mdWxsbmFtZSxcbiAgICAgICAgICAgIG5hbWU6IHJlc3BvbnNlLnN1YixcbiAgICAgICAgICAgIGF2YXRhcjogcmVzcG9uc2UucGljdHVyZSxcbiAgICAgICAgICB9IGFzIEFYUFVzZXIsXG4gICAgICAgICAgdGVuYW50OiB7XG4gICAgICAgICAgICBpZDogcmVzcG9uc2UudGVuYW50aWQhLFxuICAgICAgICAgICAgbmFtZTogcmVzcG9uc2UudGVuYW50bmFtZSEsXG4gICAgICAgICAgICB0aXRsZTogcmVzcG9uc2UudGVuYW50dGl0bGUhLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXBwbGljYXRpb246IHtcbiAgICAgICAgICAgIGlkOiByZXNwb25zZS5hcHBsaWNhdGlvbmlkISxcbiAgICAgICAgICAgIG5hbWU6IHJlc3BvbnNlLmFwcGxpY2F0aW9ubmFtZSEsXG4gICAgICAgICAgICB0aXRsZTogcmVzcG9uc2UuYXBwbGljYXRpb250aXRsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzaWdub3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nb3V0KCk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoVG9rZW4oY29udGV4dDogQVhQU2Vzc2lvbkNvbnRleHQpOiBQcm9taXNlPEFYUFJlZnJlc2hUb2tlblJlc3VsdD4ge1xuICAgIGNvbnNvbGUubG9nKCdjb250ZXh0LnRlbmFudCcsIGNvbnRleHQudGVuYW50KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmVPQXV0aCgpO1xuICAgICAgY29uc3QgcmVmcmVzaFJlc3VsdCA9IGF3YWl0IHRoaXMucmVmcmVzaChjb250ZXh0LnRlbmFudD8uaWQsIGNvbnRleHQuYXBwbGljYXRpb24/LmlkKTtcbiAgICAgIGlmIChyZWZyZXNoUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VlZDogdHJ1ZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhY2Nlc3NUb2tlbjogdGhpcy5vYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKSxcbiAgICAgICAgICAgIHJlZnJlc2hUb2tlbjogdGhpcy5vYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7IHN1Y2NlZWQ6IGZhbHNlIH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgdG9rZW4nLCBlcnJvcik7XG4gICAgICByZXR1cm4geyBzdWNjZWVkOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2godGVuYW50SWQ/OiBzdHJpbmcsIGFwcGxpY2F0aW9uSWQ/OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyZU9BdXRoKCk7XG4gICAgY29uc3QgYXV0aERhdGEgPSB0aGlzLmxvYWRBdXRoRGF0YSgpO1xuICAgIGlmICghYXV0aERhdGEpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMub2F1dGhTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpO1xuICAgIGlmICghcmVmcmVzaFRva2VuKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBib2R5ID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgLnNldCgnZ3JhbnRfdHlwZScsICdyZWZyZXNoX3Rva2VuJylcbiAgICAgIC5zZXQoJ2NsaWVudF9pZCcsIHRoaXMuYXV0aENvbmZpZy5jbGllbnRJZCEpXG4gICAgICAuc2V0KCdjbGllbnRfc2VjcmV0JywgdGhpcy5hdXRoQ29uZmlnLmR1bW15Q2xpZW50U2VjcmV0ISlcbiAgICAgIC5zZXQoJ3JlZnJlc2hfdG9rZW4nLCByZWZyZXNoVG9rZW4pXG4gICAgICAuc2V0KCd0ZW5hbnRJZCcsIHRlbmFudElkID8/ICcnKVxuICAgICAgLnNldCgnYXBwbGljYXRpb25JZCcsIGFwcGxpY2F0aW9uSWQgPz8gJycpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICB0aGlzLmh0dHAucG9zdDxJQXV0aGVudGljYXRpb25EYXRhTW9kZWw+KHRoaXMub3BlbmlkQ29uZmlndXJhdGlvbkluZm8uaW5mby5kaXNjb3ZlcnlEb2N1bWVudC50b2tlbl9lbmRwb2ludCwgYm9keS50b1N0cmluZygpLCB7IGhlYWRlcnMgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnNldFNlcnZpY2VQcm9wcyh7XG4gICAgICAgIGFjY2Vzc1Rva2VuOiByZXNwb25zZS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogcmVzcG9uc2UucmVmcmVzaF90b2tlbixcbiAgICAgICAgaWRUb2tlbjogcmVzcG9uc2UuaWRfdG9rZW4sXG4gICAgICAgIGV4cGlyZXNJbjogdGhpcy5jYWxjdWxhdGVFeHBpcmVJbkRhdGUocmVzcG9uc2UuZXhwaXJlc19pbiA/PyAwKSxcbiAgICAgIH0gYXMgQVhQU2Vzc2lvbkRhdGEpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignVG9rZW4gcmVmcmVzaCBlcnJvcicsIGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBleHBpcmVzX2luX21pbGlzZWNvdW5kKGV4cGlyZXNfaW5fZGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGV4cGlyZSA9IG5ldyBEYXRlKGV4cGlyZXNfaW5fZGF0ZSk7XG4gICAgcmV0dXJuIGV4cGlyZS5nZXRUaW1lKCkgLSBub3cuZ2V0VGltZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZXJ2aWNlUHJvcHMoYXV0aERhdGE6IEFYUFNlc3Npb25EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4gPSAoKSA9PiBhdXRoRGF0YS5hY2Nlc3NUb2tlbjtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5nZXRJZFRva2VuID0gKCkgPT4gYXV0aERhdGEuaWRUb2tlbiA/PyAnJztcbiAgICB0aGlzLm9hdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4gPSAoKSA9PiBhdXRoRGF0YS5yZWZyZXNoVG9rZW47XG4gICAgaWYgKGF1dGhEYXRhLmV4cGlyZXNJbikge1xuICAgICAgY29uc3QgcmVmcmVzaFRpbWUgPSB0aGlzLmV4cGlyZXNfaW5fbWlsaXNlY291bmQoYXV0aERhdGEuZXhwaXJlc0luISk7XG4gICAgICB0aGlzLm9hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbkV4cGlyYXRpb24gPSAoKSA9PiByZWZyZXNoVGltZTtcbiAgICAgIC8vIGlmIChyZWZyZXNoVGltZSA8IDApIHtcbiAgICAgIC8vICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAvLyB9ZWxzZXtcbiAgICAgIC8vIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBdXRoRGF0YSgpOiBBWFBTZXNzaW9uRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXV0aERhdGFKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oQVhQU2Vzc2lvblNlcnZpY2UuU0VTU0lPTl9LRVkpO1xuICAgIGlmICghYXV0aERhdGFKc29uKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYXV0aERhdGEgPSBKU09OLnBhcnNlKGF1dGhEYXRhSnNvbikgYXMgQVhQU2Vzc2lvbkRhdGE7XG5cbiAgICAvLyByZXR1cm4gYXV0aERhdGEgPyBuZXcgQXV0aGVudGljYXRpb25EYXRhKGF1dGhEYXRhKSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gYXV0aERhdGE7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZFVzZXJJbmZvKCk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMub2F1dGhTZXJ2aWNlLmxvYWRVc2VyUHJvZmlsZSgpO1xuICB9XG4gIHB1YmxpYyBjYWxjdWxhdGVFeHBpcmVJbkRhdGUoZXhwaXJlSW5NaWxpc2Vjb3VuZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKERhdGUubm93KCkgKyBleHBpcmVJbk1pbGlzZWNvdW5kICogMTAwMCkudG9JU09TdHJpbmcoKTtcbiAgfVxuICBwcml2YXRlIGxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLm9hdXRoU2VydmljZS5sb2dPdXQoe1xuICAgICAgbm9SZWRpcmVjdFRvTG9nb3V0VXJsOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBuZXZlciB7XG4gICAgaWYgKGVycm9yPy5yZWFzb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShlcnJvci5yZWFzb24pKTtcbiAgICB9IGVsc2UgaWYgKGVycm9yPy5tZXNzYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTmV0d29yayBvciBzZXJ2ZXIgZXJyb3Igb2NjdXJyZWQnKTtcbiAgICB9XG4gIH1cblxuICAvLyNyZWdpb24gZ2V0dGVyXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd1c2VyLXBhc3MnO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFVzZXJQYXNzQ3JlZGVudGlhbHMgZXh0ZW5kcyBBWFBCYXNlQ3JlZGVudGlhbHMge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgY2xhc3MgQXV0aGVudGljYXRpb25EYXRhIHtcbi8vICAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4vLyAgIGFwcGxpY2F0aW9uaWQ/OiBzdHJpbmc7XG4vLyAgIGFwcGxpY2F0aW9ubmFtZT86IHN0cmluZztcbi8vICAgYXBwbGljYXRpb250aXRsZT86IHN0cmluZztcbi8vICAgZWRpdGlvbmlkPzogc3RyaW5nO1xuLy8gICBlZGl0aW9ubmFtZT86IHN0cmluZztcbi8vICAgZWRpdGlvbnRpdGxlPzogc3RyaW5nO1xuLy8gICBpZF90b2tlbj86IHN0cmluZztcbi8vICAgcmVmcmVzaF90b2tlbj86IHN0cmluZztcbi8vICAgc2NvcGU/OiBzdHJpbmc7XG4vLyAgIHRlbmFudGlkPzogc3RyaW5nO1xuLy8gICB0ZW5hbnRuYW1lPzogc3RyaW5nO1xuLy8gICB0ZW5hbnR0aXRsZT86IHN0cmluZztcbi8vICAgdG9rZW5fdHlwZT86IHN0cmluZztcbi8vICAgZXhwaXJlc19pbl9kYXRlPzogc3RyaW5nO1xuLy8gICBzdWI/OiBzdHJpbmc7XG4vLyAgIHBpY3R1cmU/OiBzdHJpbmc7XG4vLyAgIGZ1bGxuYW1lPzogc3RyaW5nO1xuXG4vLyAgIGNvbnN0cnVjdG9yKGRhdGE6IEF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsKSB7XG4vLyAgICAgdGhpcy5hY2Nlc3NfdG9rZW4gPSBkYXRhLmFjY2Vzc190b2tlbjtcbi8vICAgICB0aGlzLmFwcGxpY2F0aW9uaWQgPSBkYXRhLmFwcGxpY2F0aW9uaWQ7XG4vLyAgICAgdGhpcy5hcHBsaWNhdGlvbm5hbWUgPSBkYXRhLmFwcGxpY2F0aW9ubmFtZTtcbi8vICAgICB0aGlzLmFwcGxpY2F0aW9udGl0bGUgPSBkYXRhLmFwcGxpY2F0aW9udGl0bGU7XG4vLyAgICAgdGhpcy5lZGl0aW9uaWQgPSBkYXRhLmVkaXRpb25pZDtcbi8vICAgICB0aGlzLmVkaXRpb25uYW1lID0gZGF0YS5lZGl0aW9ubmFtZTtcbi8vICAgICB0aGlzLmVkaXRpb250aXRsZSA9IGRhdGEuZWRpdGlvbnRpdGxlO1xuLy8gICAgIHRoaXMuaWRfdG9rZW4gPSBkYXRhLmlkX3Rva2VuO1xuLy8gICAgIHRoaXMucmVmcmVzaF90b2tlbiA9IGRhdGEucmVmcmVzaF90b2tlbjtcbi8vICAgICB0aGlzLnNjb3BlID0gZGF0YS5zY29wZTtcbi8vICAgICB0aGlzLnRlbmFudGlkID0gZGF0YS50ZW5hbnRpZDtcbi8vICAgICB0aGlzLnRlbmFudG5hbWUgPSBkYXRhLnRlbmFudG5hbWU7XG4vLyAgICAgdGhpcy50ZW5hbnR0aXRsZSA9IGRhdGEudGVuYW50dGl0bGU7XG4vLyAgICAgdGhpcy50b2tlbl90eXBlID0gZGF0YS50b2tlbl90eXBlO1xuLy8gICAgIHRoaXMuc3ViID0gZGF0YS5zdWI7XG4vLyAgICAgdGhpcy5waWN0dXJlID0gZGF0YS5waWN0dXJlO1xuLy8gICAgIHRoaXMuZnVsbG5hbWUgPSBkYXRhLmZ1bGxuYW1lO1xuXG4vLyAgICAgaWYgKGRhdGEuZXhwaXJlc19pbikge1xuLy8gICAgICAgdGhpcy5leHBpcmVzX2luX2RhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgZGF0YS5leHBpcmVzX2luICogMTAwMCkudG9JU09TdHJpbmcoKTtcbi8vICAgICB9IGVsc2Uge1xuLy8gICAgICAgdGhpcy5leHBpcmVzX2luX2RhdGUgPSBkYXRhLmV4cGlyZXNfaW5fZGF0ZSB8fCAnJztcbi8vICAgICB9XG4vLyAgIH1cblxuLy8gICBnZXQgZXhwaXJlc19pbl9taWxpc2Vjb3VuZCgpOiBudW1iZXIge1xuLy8gICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4vLyAgICAgY29uc3QgZXhwaXJlID0gbmV3IERhdGUodGhpcy5leHBpcmVzX2luX2RhdGUhKTtcbi8vICAgICByZXR1cm4gZXhwaXJlLmdldFRpbWUoKSAtIG5vdy5nZXRUaW1lKCk7XG4vLyAgIH1cblxuLy8gICBwdWJsaWMgc2V0VG9rZW5SZWZyZXNoTW9kZWwoZGF0YTogQXV0aGVudGljYXRpb25EYXRhTW9kZWwpOiB2b2lkIHtcbi8vICAgICB0aGlzLmFjY2Vzc190b2tlbiA9IGRhdGEuYWNjZXNzX3Rva2VuO1xuLy8gICAgIHRoaXMuaWRfdG9rZW4gPSBkYXRhLmlkX3Rva2VuO1xuLy8gICAgIHRoaXMudG9rZW5fdHlwZSA9IGRhdGEudG9rZW5fdHlwZTtcbi8vICAgICB0aGlzLnNjb3BlID0gZGF0YS5zY29wZTtcbi8vICAgICB0aGlzLnJlZnJlc2hfdG9rZW4gPSBkYXRhLnJlZnJlc2hfdG9rZW47XG4vLyAgICAgdGhpcy5leHBpcmVzX2luX2RhdGUgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgZGF0YS5leHBpcmVzX2luISAqIDEwMDApLnRvSVNPU3RyaW5nKCk7XG4vLyAgIH1cbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBJQXV0aGVudGljYXRpb25EYXRhTW9kZWwge1xuICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgYXBwbGljYXRpb25pZDogc3RyaW5nO1xuICBhcHBsaWNhdGlvbm5hbWU6IHN0cmluZztcbiAgYXBwbGljYXRpb250aXRsZTogc3RyaW5nO1xuICBlZGl0aW9uaWQ6IHN0cmluZztcbiAgZWRpdGlvbm5hbWU6IHN0cmluZztcbiAgZWRpdGlvbnRpdGxlOiBzdHJpbmc7XG4gIGlkX3Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZztcbiAgdGVuYW50aWQ6IHN0cmluZztcbiAgdGVuYW50bmFtZTogc3RyaW5nO1xuICB0ZW5hbnR0aXRsZTogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW4/OiBudW1iZXI7XG4gIHN1Yj86IHN0cmluZztcbiAgZnVsbG5hbWU/OiBzdHJpbmc7XG4gIHBpY3R1cmU/OiBzdHJpbmc7XG59XG4iXX0=
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvYXV0aC9vaWRjL29pZGMuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFNTCxpQkFBaUIsR0FHbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxtQkFBYyxHQUFtQixNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxpQkFBWSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWdPL0M7SUEzTlEsS0FBSyxDQUFDLGNBQWM7UUFDekIsSUFBSSxJQUFJLENBQUMsdUJBQXVCO1lBQUUsT0FBTztRQUV6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7UUFDbkQsQ0FBQztRQUVE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LElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ08sTUFBTTtRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sSUFBSSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFBSSxJQUFJO1FBQ04sT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs4R0FqT1UsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNQXV0aENvbmZpZ3MsIEFYTV9BVVRIX0NPTkZJR19UT0tFTiB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEF1dGhTdHJhdGVneSxcbiAgQVhQQmFzZUNyZWRlbnRpYWxzLFxuICBBWFBSZWZyZXNoVG9rZW5SZXN1bHQsXG4gIEFYUFNlc3Npb25Db250ZXh0LFxuICBBWFBTZXNzaW9uRGF0YSxcbiAgQVhQU2Vzc2lvblNlcnZpY2UsXG4gIEFYUFNpZ25JblJlc3VsdCxcbiAgQVhQVXNlcixcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1PaWRjU3RyYXRlZ3kgaW1wbGVtZW50cyBBWFBBdXRoU3RyYXRlZ3kge1xuICBwcml2YXRlIGFYTUF1dGhDb25maWdzOiBBWE1BdXRoQ29uZmlncyA9IGluamVjdChBWE1fQVVUSF9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIG9hdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHVibGljIHVzZXJJbmZvOiBhbnk7XG4gIHB1YmxpYyBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnO1xuICBwdWJsaWMgb3BlbmlkQ29uZmlndXJhdGlvbkluZm86IGFueTsgLy8gY2xhcmlmeSB0aGUgdHlwZSBpZiBwb3NzaWJsZVxuXG4gIHB1YmxpYyBhc3luYyBjb25maWd1cmVPQXV0aCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5vcGVuaWRDb25maWd1cmF0aW9uSW5mbykgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLmF1dGhDb25maWcpIHtcbiAgICAgIGlmICghdGhpcy5hWE1BdXRoQ29uZmlncy5hdXRoQ29uZmlnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aENvbmZpZyBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmF1dGhDb25maWcgPSB0aGlzLmFYTUF1dGhDb25maWdzLmF1dGhDb25maWc7XG4gICAgfVxuXG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuY29uZmlndXJlKHRoaXMuYXV0aENvbmZpZyk7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2Uuc2V0U3RvcmFnZShsb2NhbFN0b3JhZ2UpO1xuXG4gICAgdGhpcy5vcGVuaWRDb25maWd1cmF0aW9uSW5mbyA9IGF3YWl0IHRoaXMub2F1dGhTZXJ2aWNlLmxvYWREaXNjb3ZlcnlEb2N1bWVudCgpO1xuXG4gICAgaWYgKCF0aGlzLm9wZW5pZENvbmZpZ3VyYXRpb25JbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZW5pZENvbmZpZ3VyYXRpb25JbmZvIGlzIG1pc3NpbmcnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9hdXRoU2VydmljZS5ldmVudHMuc3Vic2NyaWJlKGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50JywgZXZlbnQpO1xuICAgICAgLy8gaWYgKGV2ZW50LnR5cGUgPT09ICd0b2tlbl9yZWNlaXZlZCcpIHtcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ1Rva2VuIGhhcyBiZWVuIHJlZnJlc2hlZCcpO1xuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKGV2ZW50LnR5cGUgPT09ICd0b2tlbl9leHBpcmVzJykge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnVG9rZW4gaXMgYWJvdXQgdG8gZXhwaXJlLiBUcmlnZ2VyaW5nIHNpbGVudCByZWZyZXNoLi4uJyk7XG4gICAgICAvLyB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBvaWRjSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEFYUFNlc3Npb25TZXJ2aWNlLlNFU1NJT05fS0VZKTtcblxuICAgIGlmIChvaWRjSnNvbikge1xuICAgICAgY29uc3QgYXV0aERhdGEgPSBKU09OLnBhcnNlKG9pZGNKc29uKSBhcyBBWFBTZXNzaW9uRGF0YTtcbiAgICAgIGlmIChhdXRoRGF0YSkge1xuICAgICAgICB0aGlzLnNldFNlcnZpY2VQcm9wcyhhdXRoRGF0YSk7XG5cbiAgICAgICAgaWYgKGF1dGhEYXRhLmV4cGlyZXNJbiAmJiBuZXcgRGF0ZShhdXRoRGF0YS5leHBpcmVzSW4pIDwgbmV3IERhdGUoKSkge1xuICAgICAgICAgIGlmIChhdXRoRGF0YS5leHBpcmVzSW4pIHtcbiAgICAgICAgICAgIC8vIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNpZ25pbihjcmVkZW50aWFsczogQVhQVXNlclBhc3NDcmVkZW50aWFscyk6IFByb21pc2U8QVhQU2lnbkluUmVzdWx0PiB7XG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmVPQXV0aCgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBib2R5ID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgICAgICAuc2V0KCdncmFudF90eXBlJywgJ3Bhc3N3b3JkJylcbiAgICAgICAgLnNldCgnY2xpZW50X2lkJywgdGhpcy5hdXRoQ29uZmlnLmNsaWVudElkISlcbiAgICAgICAgLnNldCgnY2xpZW50X3NlY3JldCcsIHRoaXMuYXV0aENvbmZpZy5kdW1teUNsaWVudFNlY3JldCEpXG4gICAgICAgIC5zZXQoJ3VzZXJuYW1lJywgY3JlZGVudGlhbHMudXNlcm5hbWUpXG4gICAgICAgIC5zZXQoJ3Bhc3N3b3JkJywgY3JlZGVudGlhbHMucGFzc3dvcmQpXG4gICAgICAgIC5zZXQoJ3Njb3BlJywgdGhpcy5hdXRoQ29uZmlnLnNjb3BlISk7XG5cbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8SUF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsPih0aGlzLm9wZW5pZENvbmZpZ3VyYXRpb25JbmZvLmluZm8uZGlzY292ZXJ5RG9jdW1lbnQudG9rZW5fZW5kcG9pbnQsIGJvZHkudG9TdHJpbmcoKSwgeyBoZWFkZXJzIH0pXG4gICAgICApO1xuXG4gICAgICAvLyBjb25zdCBhdXRoRGF0YSA9IG5ldyBBdXRoZW50aWNhdGlvbkRhdGEocmVzcG9uc2UpO1xuICAgICAgdGhpcy5zZXRTZXJ2aWNlUHJvcHMoe1xuICAgICAgICBhY2Nlc3NUb2tlbjogcmVzcG9uc2UuYWNjZXNzX3Rva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGlkVG9rZW46IHJlc3BvbnNlLmlkX3Rva2VuLFxuICAgICAgICBleHBpcmVzSW46IHRoaXMuY2FsY3VsYXRlRXhwaXJlSW5EYXRlKHJlc3BvbnNlLmV4cGlyZXNfaW4gPz8gMCksXG4gICAgICB9IGFzIEFYUFNlc3Npb25EYXRhKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VlZDogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuOiByZXNwb25zZS5hY2Nlc3NfdG9rZW4sXG4gICAgICAgICAgZXhwaXJlc0luOiB0aGlzLmNhbGN1bGF0ZUV4cGlyZUluRGF0ZShyZXNwb25zZS5leHBpcmVzX2luID8/IDApLFxuICAgICAgICAgIGlkVG9rZW46IHJlc3BvbnNlLmlkX3Rva2VuLFxuICAgICAgICAgIHJlZnJlc2hUb2tlbjogcmVzcG9uc2UucmVmcmVzaF90b2tlbiEsXG4gICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgaWQ6IHJlc3BvbnNlLnN1YixcbiAgICAgICAgICAgIHRpdGxlOiByZXNwb25zZS5mdWxsbmFtZSxcbiAgICAgICAgICAgIG5hbWU6IHJlc3BvbnNlLnN1YixcbiAgICAgICAgICAgIGF2YXRhcjogcmVzcG9uc2UucGljdHVyZSxcbiAgICAgICAgICB9IGFzIEFYUFVzZXIsXG4gICAgICAgICAgdGVuYW50OiB7XG4gICAgICAgICAgICBpZDogcmVzcG9uc2UudGVuYW50aWQhLFxuICAgICAgICAgICAgbmFtZTogcmVzcG9uc2UudGVuYW50bmFtZSEsXG4gICAgICAgICAgICB0aXRsZTogcmVzcG9uc2UudGVuYW50dGl0bGUhLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXBwbGljYXRpb246IHtcbiAgICAgICAgICAgIGlkOiByZXNwb25zZS5hcHBsaWNhdGlvbmlkISxcbiAgICAgICAgICAgIG5hbWU6IHJlc3BvbnNlLmFwcGxpY2F0aW9ubmFtZSEsXG4gICAgICAgICAgICB0aXRsZTogcmVzcG9uc2UuYXBwbGljYXRpb250aXRsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzaWdub3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vdGhpcy5sb2dvdXQoKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbihjb250ZXh0OiBBWFBTZXNzaW9uQ29udGV4dCk6IFByb21pc2U8QVhQUmVmcmVzaFRva2VuUmVzdWx0PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJlT0F1dGgoKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hSZXN1bHQgPSBhd2FpdCB0aGlzLnJlZnJlc2goY29udGV4dC50ZW5hbnQ/LmlkLCBjb250ZXh0LmFwcGxpY2F0aW9uPy5pZCk7XG4gICAgICBpZiAocmVmcmVzaFJlc3VsdCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Y2NlZWQ6IHRydWUsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYWNjZXNzVG9rZW46IHRoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCksXG4gICAgICAgICAgICByZWZyZXNoVG9rZW46IHRoaXMub2F1dGhTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4geyBzdWNjZWVkOiBmYWxzZSB9O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIHRva2VuJywgZXJyb3IpO1xuICAgICAgcmV0dXJuIHsgc3VjY2VlZDogZmFsc2UgfTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZWZyZXNoKHRlbmFudElkPzogc3RyaW5nLCBhcHBsaWNhdGlvbklkPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgYXdhaXQgdGhpcy5jb25maWd1cmVPQXV0aCgpO1xuICAgIGNvbnN0IGF1dGhEYXRhID0gdGhpcy5sb2FkQXV0aERhdGEoKTtcbiAgICBpZiAoIWF1dGhEYXRhKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSB0aGlzLm9hdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKTtcbiAgICBpZiAoIXJlZnJlc2hUb2tlbikgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgYm9keSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgIC5zZXQoJ2dyYW50X3R5cGUnLCAncmVmcmVzaF90b2tlbicpXG4gICAgICAuc2V0KCdjbGllbnRfaWQnLCB0aGlzLmF1dGhDb25maWcuY2xpZW50SWQhKVxuICAgICAgLnNldCgnY2xpZW50X3NlY3JldCcsIHRoaXMuYXV0aENvbmZpZy5kdW1teUNsaWVudFNlY3JldCEpXG4gICAgICAuc2V0KCdyZWZyZXNoX3Rva2VuJywgcmVmcmVzaFRva2VuKVxuICAgICAgLnNldCgndGVuYW50SWQnLCB0ZW5hbnRJZCA/PyAnJylcbiAgICAgIC5zZXQoJ2FwcGxpY2F0aW9uSWQnLCBhcHBsaWNhdGlvbklkID8/ICcnKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8SUF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsPih0aGlzLm9wZW5pZENvbmZpZ3VyYXRpb25JbmZvLmluZm8uZGlzY292ZXJ5RG9jdW1lbnQudG9rZW5fZW5kcG9pbnQsIGJvZHkudG9TdHJpbmcoKSwgeyBoZWFkZXJzIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zZXRTZXJ2aWNlUHJvcHMoe1xuICAgICAgICBhY2Nlc3NUb2tlbjogcmVzcG9uc2UuYWNjZXNzX3Rva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlc3BvbnNlLnJlZnJlc2hfdG9rZW4sXG4gICAgICAgIGlkVG9rZW46IHJlc3BvbnNlLmlkX3Rva2VuLFxuICAgICAgICBleHBpcmVzSW46IHRoaXMuY2FsY3VsYXRlRXhwaXJlSW5EYXRlKHJlc3BvbnNlLmV4cGlyZXNfaW4gPz8gMCksXG4gICAgICB9IGFzIEFYUFNlc3Npb25EYXRhKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1Rva2VuIHJlZnJlc2ggZXJyb3InLCBlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZXhwaXJlc19pbl9taWxpc2Vjb3VuZChleHBpcmVzX2luX2RhdGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBleHBpcmUgPSBuZXcgRGF0ZShleHBpcmVzX2luX2RhdGUpO1xuICAgIHJldHVybiBleHBpcmUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VydmljZVByb3BzKGF1dGhEYXRhOiBBWFBTZXNzaW9uRGF0YSk6IHZvaWQge1xuICAgIHRoaXMub2F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuID0gKCkgPT4gYXV0aERhdGEuYWNjZXNzVG9rZW47XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuZ2V0SWRUb2tlbiA9ICgpID0+IGF1dGhEYXRhLmlkVG9rZW4gPz8gJyc7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuID0gKCkgPT4gYXV0aERhdGEucmVmcmVzaFRva2VuO1xuICAgIGlmIChhdXRoRGF0YS5leHBpcmVzSW4pIHtcbiAgICAgIGNvbnN0IHJlZnJlc2hUaW1lID0gdGhpcy5leHBpcmVzX2luX21pbGlzZWNvdW5kKGF1dGhEYXRhLmV4cGlyZXNJbiEpO1xuICAgICAgdGhpcy5vYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW5FeHBpcmF0aW9uID0gKCkgPT4gcmVmcmVzaFRpbWU7XG4gICAgICAvLyBpZiAocmVmcmVzaFRpbWUgPCAwKSB7XG4gICAgICAvLyAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgLy8gfWVsc2V7XG4gICAgICAvLyB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQXV0aERhdGEoKTogQVhQU2Vzc2lvbkRhdGEgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGF1dGhEYXRhSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEFYUFNlc3Npb25TZXJ2aWNlLlNFU1NJT05fS0VZKTtcbiAgICBpZiAoIWF1dGhEYXRhSnNvbikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGF1dGhEYXRhID0gSlNPTi5wYXJzZShhdXRoRGF0YUpzb24pIGFzIEFYUFNlc3Npb25EYXRhO1xuXG4gICAgLy8gcmV0dXJuIGF1dGhEYXRhID8gbmV3IEF1dGhlbnRpY2F0aW9uRGF0YShhdXRoRGF0YSkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGF1dGhEYXRhO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRVc2VySW5mbygpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS5sb2FkVXNlclByb2ZpbGUoKTtcbiAgfVxuICBwdWJsaWMgY2FsY3VsYXRlRXhwaXJlSW5EYXRlKGV4cGlyZUluTWlsaXNlY291bmQ6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpICsgZXhwaXJlSW5NaWxpc2Vjb3VuZCAqIDEwMDApLnRvSVNPU3RyaW5nKCk7XG4gIH1cbiAgcHJpdmF0ZSBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5vYXV0aFNlcnZpY2UubG9nT3V0KHtcbiAgICAgIG5vUmVkaXJlY3RUb0xvZ291dFVybDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogbmV2ZXIge1xuICAgIGlmIChlcnJvcj8ucmVhc29uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyb3IucmVhc29uKSk7XG4gICAgfSBlbHNlIGlmIChlcnJvcj8ubWVzc2FnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgb3Igc2VydmVyIGVycm9yIG9jY3VycmVkJyk7XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIGdldHRlclxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAndXNlci1wYXNzJztcbiAgfVxuICAvLyNlbmRyZWdpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBVc2VyUGFzc0NyZWRlbnRpYWxzIGV4dGVuZHMgQVhQQmFzZUNyZWRlbnRpYWxzIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn1cblxuLy8gZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRGF0YSB7XG4vLyAgIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuLy8gICBhcHBsaWNhdGlvbmlkPzogc3RyaW5nO1xuLy8gICBhcHBsaWNhdGlvbm5hbWU/OiBzdHJpbmc7XG4vLyAgIGFwcGxpY2F0aW9udGl0bGU/OiBzdHJpbmc7XG4vLyAgIGVkaXRpb25pZD86IHN0cmluZztcbi8vICAgZWRpdGlvbm5hbWU/OiBzdHJpbmc7XG4vLyAgIGVkaXRpb250aXRsZT86IHN0cmluZztcbi8vICAgaWRfdG9rZW4/OiBzdHJpbmc7XG4vLyAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4vLyAgIHNjb3BlPzogc3RyaW5nO1xuLy8gICB0ZW5hbnRpZD86IHN0cmluZztcbi8vICAgdGVuYW50bmFtZT86IHN0cmluZztcbi8vICAgdGVuYW50dGl0bGU/OiBzdHJpbmc7XG4vLyAgIHRva2VuX3R5cGU/OiBzdHJpbmc7XG4vLyAgIGV4cGlyZXNfaW5fZGF0ZT86IHN0cmluZztcbi8vICAgc3ViPzogc3RyaW5nO1xuLy8gICBwaWN0dXJlPzogc3RyaW5nO1xuLy8gICBmdWxsbmFtZT86IHN0cmluZztcblxuLy8gICBjb25zdHJ1Y3RvcihkYXRhOiBBdXRoZW50aWNhdGlvbkRhdGFNb2RlbCkge1xuLy8gICAgIHRoaXMuYWNjZXNzX3Rva2VuID0gZGF0YS5hY2Nlc3NfdG9rZW47XG4vLyAgICAgdGhpcy5hcHBsaWNhdGlvbmlkID0gZGF0YS5hcHBsaWNhdGlvbmlkO1xuLy8gICAgIHRoaXMuYXBwbGljYXRpb25uYW1lID0gZGF0YS5hcHBsaWNhdGlvbm5hbWU7XG4vLyAgICAgdGhpcy5hcHBsaWNhdGlvbnRpdGxlID0gZGF0YS5hcHBsaWNhdGlvbnRpdGxlO1xuLy8gICAgIHRoaXMuZWRpdGlvbmlkID0gZGF0YS5lZGl0aW9uaWQ7XG4vLyAgICAgdGhpcy5lZGl0aW9ubmFtZSA9IGRhdGEuZWRpdGlvbm5hbWU7XG4vLyAgICAgdGhpcy5lZGl0aW9udGl0bGUgPSBkYXRhLmVkaXRpb250aXRsZTtcbi8vICAgICB0aGlzLmlkX3Rva2VuID0gZGF0YS5pZF90b2tlbjtcbi8vICAgICB0aGlzLnJlZnJlc2hfdG9rZW4gPSBkYXRhLnJlZnJlc2hfdG9rZW47XG4vLyAgICAgdGhpcy5zY29wZSA9IGRhdGEuc2NvcGU7XG4vLyAgICAgdGhpcy50ZW5hbnRpZCA9IGRhdGEudGVuYW50aWQ7XG4vLyAgICAgdGhpcy50ZW5hbnRuYW1lID0gZGF0YS50ZW5hbnRuYW1lO1xuLy8gICAgIHRoaXMudGVuYW50dGl0bGUgPSBkYXRhLnRlbmFudHRpdGxlO1xuLy8gICAgIHRoaXMudG9rZW5fdHlwZSA9IGRhdGEudG9rZW5fdHlwZTtcbi8vICAgICB0aGlzLnN1YiA9IGRhdGEuc3ViO1xuLy8gICAgIHRoaXMucGljdHVyZSA9IGRhdGEucGljdHVyZTtcbi8vICAgICB0aGlzLmZ1bGxuYW1lID0gZGF0YS5mdWxsbmFtZTtcblxuLy8gICAgIGlmIChkYXRhLmV4cGlyZXNfaW4pIHtcbi8vICAgICAgIHRoaXMuZXhwaXJlc19pbl9kYXRlID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGRhdGEuZXhwaXJlc19pbiAqIDEwMDApLnRvSVNPU3RyaW5nKCk7XG4vLyAgICAgfSBlbHNlIHtcbi8vICAgICAgIHRoaXMuZXhwaXJlc19pbl9kYXRlID0gZGF0YS5leHBpcmVzX2luX2RhdGUgfHwgJyc7XG4vLyAgICAgfVxuLy8gICB9XG5cbi8vICAgZ2V0IGV4cGlyZXNfaW5fbWlsaXNlY291bmQoKTogbnVtYmVyIHtcbi8vICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuLy8gICAgIGNvbnN0IGV4cGlyZSA9IG5ldyBEYXRlKHRoaXMuZXhwaXJlc19pbl9kYXRlISk7XG4vLyAgICAgcmV0dXJuIGV4cGlyZS5nZXRUaW1lKCkgLSBub3cuZ2V0VGltZSgpO1xuLy8gICB9XG5cbi8vICAgcHVibGljIHNldFRva2VuUmVmcmVzaE1vZGVsKGRhdGE6IEF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsKTogdm9pZCB7XG4vLyAgICAgdGhpcy5hY2Nlc3NfdG9rZW4gPSBkYXRhLmFjY2Vzc190b2tlbjtcbi8vICAgICB0aGlzLmlkX3Rva2VuID0gZGF0YS5pZF90b2tlbjtcbi8vICAgICB0aGlzLnRva2VuX3R5cGUgPSBkYXRhLnRva2VuX3R5cGU7XG4vLyAgICAgdGhpcy5zY29wZSA9IGRhdGEuc2NvcGU7XG4vLyAgICAgdGhpcy5yZWZyZXNoX3Rva2VuID0gZGF0YS5yZWZyZXNoX3Rva2VuO1xuLy8gICAgIHRoaXMuZXhwaXJlc19pbl9kYXRlID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGRhdGEuZXhwaXJlc19pbiEgKiAxMDAwKS50b0lTT1N0cmluZygpO1xuLy8gICB9XG4vLyB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhlbnRpY2F0aW9uRGF0YU1vZGVsIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uaWQ6IHN0cmluZztcbiAgYXBwbGljYXRpb25uYW1lOiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9udGl0bGU6IHN0cmluZztcbiAgZWRpdGlvbmlkOiBzdHJpbmc7XG4gIGVkaXRpb25uYW1lOiBzdHJpbmc7XG4gIGVkaXRpb250aXRsZTogc3RyaW5nO1xuICBpZF90b2tlbjogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuOiBzdHJpbmc7XG4gIHNjb3BlOiBzdHJpbmc7XG4gIHRlbmFudGlkOiBzdHJpbmc7XG4gIHRlbmFudG5hbWU6IHN0cmluZztcbiAgdGVuYW50dGl0bGU6IHN0cmluZztcbiAgdG9rZW5fdHlwZTogc3RyaW5nO1xuICBleHBpcmVzX2luPzogbnVtYmVyO1xuICBzdWI/OiBzdHJpbmc7XG4gIGZ1bGxuYW1lPzogc3RyaW5nO1xuICBwaWN0dXJlPzogc3RyaW5nO1xufVxuIl19
|
@@ -26,7 +26,9 @@ export class AXMBackendDataProvider {
|
|
26
26
|
return firstValueFrom(this.http.get(url));
|
27
27
|
}
|
28
28
|
getMany(entity, params) {
|
29
|
-
let httpParams = new HttpParams()
|
29
|
+
let httpParams = new HttpParams()
|
30
|
+
.set('Skip', params?.skip?.toString() ?? '0')
|
31
|
+
.set('Take', params?.take?.toString() ?? '10');
|
30
32
|
if (params?.sort && params?.sort.length > 0) {
|
31
33
|
const sortParam = params?.sort.map((sort) => `${sort.field}:${sort.dir}`).join(',');
|
32
34
|
httpParams = httpParams.set('$orderby', sortParam);
|
@@ -75,7 +77,7 @@ export class AXMBackendDataProvider {
|
|
75
77
|
return `${filterStrings.filter((i) => i).join(` ${logic} `)}`;
|
76
78
|
}
|
77
79
|
}
|
78
|
-
if (params
|
80
|
+
if (params?.date) {
|
79
81
|
httpParams = httpParams.set('Date', params.date);
|
80
82
|
}
|
81
83
|
let queryString = params?.customFilter ? params.customFilter : '';
|
@@ -144,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
144
146
|
providedIn: 'root',
|
145
147
|
}]
|
146
148
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvZGF0YS9hcGkvZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLdEMsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSDVCLFlBQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFFQSxDQUFDO0lBRXhDLFNBQVMsQ0FBQyxNQUF1QixFQUFFLFVBQWU7UUFDaEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckcsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUF1QixFQUFFLFVBQWU7UUFDakQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzlDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JHLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBdUIsRUFBRSxFQUFVO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFILE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUF1QixFQUFFLE1BQVk7UUFDM0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFD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QUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsUUFBUSxDQUFDLEVBQVUsRUFBRSxJQUFZO1FBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8saUJBQWlCLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUM5RCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsWUFBWSxDQUFDLEVBQVUsRUFBRSxJQUFZO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8saUJBQWlCLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNsRSxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7OEdBM0pVLHNCQUFzQjtrSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzJGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBEYXRhUHJvdmlkZXIsIEFYUEVudGl0eUNvbmZpZywgQVhQX1JPT1RfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTUJhY2tlbmREYXRhUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBEYXRhUHJvdmlkZXIge1xuICBwcml2YXRlIGNvbmZpZ3MgPSBpbmplY3QoQVhQX1JPT1RfQ09ORklHX1RPS0VOKTtcbiAgcHJpdmF0ZSBtYWluVXJsID0gdGhpcy5jb25maWdzLmJhc2VVcmw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGluc2VydE9uZShlbnRpdHk6IEFYUEVudGl0eUNvbmZpZywgZW50aXR5SXRlbTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9JHtlbnRpdHkuYXJlYSA/ICcvJyArIGVudGl0eS5hcmVhIDogJyd9LyR7ZW50aXR5Lm1vZHVsZX0vJHtlbnRpdHkubmFtZX1gO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdCh1cmwsIGVudGl0eUl0ZW0pKTtcbiAgfVxuXG4gIGluc2VydE1hbnkoZW50aXR5OiBBWFBFbnRpdHlDb25maWcsIGVudGl0eUxpc3Q6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcHJvbWlzZXMgPSBlbnRpdHlMaXN0Lm1hcCgoZW50aXR5OiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0ke2VudGl0eS5hcmVhID8gJy8nICsgZW50aXR5LmFyZWEgOiAnJ30vJHtlbnRpdHkubW9kdWxlfS8ke2VudGl0eS5uYW1lfWA7XG4gICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3QodXJsLCBlbnRpdHkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9XG5cbiAgZ2V0T25lKGVudGl0eTogQVhQRW50aXR5Q29uZmlnLCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9JHtlbnRpdHkuYXJlYSA/ICcvJyArIGVudGl0eS5hcmVhIDogJyd9LyR7ZW50aXR5Lm1vZHVsZX0vJHtlbnRpdHkubmFtZX0ke2lkID8gJy8nICsgaWQgOiAnJ31gO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZ2V0KHVybCkpO1xuICB9XG5cbiAgZ2V0TWFueShlbnRpdHk6IEFYUEVudGl0eUNvbmZpZywgcGFyYW1zPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdTa2lwJywgcGFyYW1zPy5za2lwPy50b1N0cmluZygpID8/ICcwJykuc2V0KCdUYWtlJywgcGFyYW1zPy50YWtlPy50b1N0cmluZygpID8/ICcxMCcpO1xuICAgIGlmIChwYXJhbXM/LnNvcnQgJiYgcGFyYW1zPy5zb3J0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNvcnRQYXJhbSA9IHBhcmFtcz8uc29ydC5tYXAoKHNvcnQ6IGFueSkgPT4gYCR7c29ydC5maWVsZH06JHtzb3J0LmRpcn1gKS5qb2luKCcsJyk7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJyRvcmRlcmJ5Jywgc29ydFBhcmFtKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEZpbHRlclN0cmluZyA9IChmaWx0ZXJzOiBhbnlbXSk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyc1xuICAgICAgICAubWFwKChmOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoZi5maWx0ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRGaWx0ZXJTdHJpbmcoZi5maWx0ZXJzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGAke2YuZmllbGR9ICR7Zi5vcGVyYXRvci50eXBlfSAke2YudmFsdWV9YDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcsJyk7XG4gICAgfTtcblxuICAgIGxldCBmaWx0ZXJTdHJpbmcgPSBwYXJhbXM/LmN1c3RvbUZpbHRlciA/IHBhcmFtcy5jdXN0b21GaWx0ZXIgOiAnJztcbiAgICBpZiAocGFyYW1zPy5maWx0ZXIpIHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHBhcmFtcy5maWx0ZXI7XG4gICAgICBpZiAoZmlsdGVyLmZpbHRlcnMpIHtcbiAgICAgICAgLy8gQ29uc3RydWN0IGZpbHRlciBzdHJpbmcgZnJvbSBwcm92aWRlZCBmaWx0ZXJzXG5cbiAgICAgICAgY29uc3QgZHluYW1pY0ZpbHRlcnMgPSBidWlsZEZpbHRlclN0cmluZyhmaWx0ZXIuZmlsdGVycyk7XG5cbiAgICAgICAgLy8gQXBwZW5kIGR5bmFtaWMgZmlsdGVycyB0byBjdXN0b20gZmlsdGVyLCBpZiBib3RoIGV4aXN0XG4gICAgICAgIGZpbHRlclN0cmluZyA9IGZpbHRlclN0cmluZyA/IGAke2ZpbHRlclN0cmluZ30sJHtkeW5hbWljRmlsdGVyc31gIDogZHluYW1pY0ZpbHRlcnM7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCB0aGUgJGZpbHRlciBwYXJhbWV0ZXIgaWYgdGhlcmUgYXJlIGFueSBmaWx0ZXJzXG4gICAgaWYgKGZpbHRlclN0cmluZykge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCckZmlsdGVyJywgZmlsdGVyU3RyaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHN0cjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyID8gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogc3RyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdlbmVyYXRlUXVlcnlTdHJpbmcoZmlsdGVyOiBhbnkpIHtcbiAgICAgIGlmICghZmlsdGVyLmZpbHRlcnMpIHtcbiAgICAgICAgLy8gQmFzZSBjYXNlOiBzaW5nbGUgZmlsdGVyXG4gICAgICAgIHJldHVybiBgJHtjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZmlsdGVyLmZpZWxkKX0gJHtmaWx0ZXIub3BlcmF0b3IudHlwZX0gJHtmaWx0ZXIudmFsdWV9YDtcbiAgICAgIH0gZWxzZSBpZiAoIWZpbHRlci5maWx0ZXJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZWN1cnNpdmUgY2FzZTogbXVsdGlwbGUgZmlsdGVyc1xuXG4gICAgICAgIGNvbnN0IGZpbHRlclN0cmluZ3MgPSBmaWx0ZXIuZmlsdGVycy5tYXAoKHN1YkZpbHRlcjogYW55KSA9PiBnZW5lcmF0ZVF1ZXJ5U3RyaW5nKHN1YkZpbHRlcikpO1xuICAgICAgICBjb25zdCBsb2dpYyA9IGZpbHRlci5sb2dpYyB8fCAnQU5EJzsgLy8gRGVmYXVsdCBsb2dpYyBpcyAnQU5EJyBpZiBub3QgcHJvdmlkZWRcbiAgICAgICAgcmV0dXJuIGAke2ZpbHRlclN0cmluZ3MuZmlsdGVyKChpOiBhbnkpID0+IGkpLmpvaW4oYCAke2xvZ2ljfSBgKX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbXMuZGF0ZSkge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdEYXRlJywgcGFyYW1zLmRhdGUpO1xuICAgIH1cblxuICAgIGxldCBxdWVyeVN0cmluZyA9IHBhcmFtcz8uY3VzdG9tRmlsdGVyID8gcGFyYW1zLmN1c3RvbUZpbHRlciA6ICcnO1xuICAgIGlmIChwYXJhbXM/LmZpbHRlcikge1xuICAgICAgY29uc3QgZmlsdGVyID0gcGFyYW1zLmZpbHRlcjtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVycyAmJiBmaWx0ZXIuZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIENvbnN0cnVjdCBmaWx0ZXIgc3RyaW5nIGZyb20gcHJvdmlkZWQgZmlsdGVyc1xuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNRdWVyaWVzID0gZ2VuZXJhdGVRdWVyeVN0cmluZyhmaWx0ZXIpO1xuICAgICAgICBjb25zb2xlLmxvZyh7IGR5bmFtaWNRdWVyaWVzOiBkeW5hbWljUXVlcmllcyB9KTtcblxuICAgICAgICAvLyBBcHBlbmQgZHluYW1pYyBmaWx0ZXJzIHRvIGN1c3RvbSBmaWx0ZXIsIGlmIGJvdGggZXhpc3RcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZyA/IGAke3F1ZXJ5U3RyaW5nfSwke2R5bmFtaWNRdWVyaWVzfWAgOiBkeW5hbWljUXVlcmllcztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2V0IHRoZSAkZmlsdGVyIHBhcmFtZXRlciBpZiB0aGVyZSBhcmUgYW55IGZpbHRlcnNcbiAgICBpZiAocXVlcnlTdHJpbmcpIHtcbiAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgnJHF1ZXJ5JywgcXVlcnlTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAuZ2V0PGFueT4oXG4gICAgICAgIGAke3RoaXMubWFpblVybH0ke2VudGl0eS5hcmVhID8gJy8nICsgZW50aXR5LmFyZWEgOiAnJ30vJHtlbnRpdHkubW9kdWxlfS8ke3BhcmFtcz8uY29zdHVtR2V0dGVyID8gcGFyYW1zLmNvc3R1bUdldHRlciA6IGVudGl0eS5uYW1lfS8ke1xuICAgICAgICAgIHBhcmFtcz8uc3ViID8gcGFyYW1zLnN1YiA6ICcnXG4gICAgICAgIH1gLFxuICAgICAgICB7IHBhcmFtczogaHR0cFBhcmFtcyB9XG4gICAgICApXG4gICAgKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG90YWw6IHJlc3BvbnNlLnRvdGFsQ291bnQsXG4gICAgICAgIGl0ZW1zOiByZXNwb25zZS5pdGVtcyxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVPbmUoZW50aXR5OiBBWFBFbnRpdHlDb25maWcsIGlkPzogc3RyaW5nLCBkYXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfSR7ZW50aXR5LmFyZWEgPyAnLycgKyBlbnRpdHkuYXJlYSA6ICcnfS8ke2VudGl0eS5tb2R1bGV9LyR7ZW50aXR5Lm5hbWV9JHtpZCA/ICcvJyArIGlkIDogJyd9YDtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpKTtcbiAgfVxuXG4gIGRlbGV0ZU9uZShlbnRpdHk6IEFYUEVudGl0eUNvbmZpZywgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfSR7ZW50aXR5LmFyZWEgPyAnLycgKyBlbnRpdHkuYXJlYSA6ICcnfS8ke2VudGl0eS5tb2R1bGV9LyR7ZW50aXR5Lm5hbWV9LyR7aWR9YDtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmRlbGV0ZSh1cmwpKTtcbiAgfVxuXG4gIGdldEZpcnN0KGVudGl0eTogQVhQRW50aXR5Q29uZmlnKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyByZXR1cm4gdGhpcy5nZXRNYW55KGVudGl0eS5uYW1lKS50aGVuKChyZXMpID0+IHJlcy5pdGVtc1swXSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXNvbHZlKHRydWUpKTtcbiAgfVxuXG4gIC8vIEZpbGUgdXBsb2FkZXIgZnVuY3Rpb25cbiAgdXBsb2FkRmlsZShmaWxlOiBGaWxlLCB0aXRsZTogc3RyaW5nLCBjdXN0b21Vcmw/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHVybCA9IGN1c3RvbVVybCA/IGAke3RoaXMubWFpblVybH0vJHtjdXN0b21Vcmx9YCA6IGAke3RoaXMubWFpblVybH0vY29tbW9uL2ZpbGVzYDtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ0ZpbGUnLCBmaWxlKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ1RpdGxlJywgdGl0bGUpO1xuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PHN0cmluZz4odXJsLCBmb3JtRGF0YSkpO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gdXBsb2FkIG11bHRpcGxlIGZpbGVzXG4gIHVwbG9hZE11bHRpcGxlRmlsZXMoZmlsZXM6IEZpbGVbXSwgdGl0bGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCB1cGxvYWRQcm9taXNlcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT4gdGhpcy51cGxvYWRGaWxlKGZpbGUsIHRpdGxlKSk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHVwbG9hZFByb21pc2VzKTtcbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIHZpZXcgYSBmaWxlXG4gIHZpZXdGaWxlKGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0vY29tbW9uL2ZpbGVzLyR7aWR9L1ZpZXcvJHtuYW1lfWA7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pKTtcbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIGRvd25sb2FkIGEgZmlsZVxuICBkb3dubG9hZEZpbGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfS9jb21tb24vZmlsZXMvJHtpZH0vRG93bmxvYWQvJHtuYW1lfWA7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pKTtcbiAgfVxufVxuIl19
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9iYWNrZW5kL3NyYy9saWIvZGF0YS9hcGkvZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLdEMsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSDVCLFlBQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4QyxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFFQSxDQUFDO0lBRXhDLFNBQVMsQ0FBQyxNQUF1QixFQUFFLFVBQWU7UUFDaEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckcsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUF1QixFQUFFLFVBQWU7UUFDakQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzlDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JHLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBdUIsRUFBRSxFQUFVO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksR0FDaEcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNsQixFQUFFLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBdUIsRUFBRSxNQUFZO1FBQzNDLElBQUksVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQzlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUM7YUFDNUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFjLEVBQVUsRUFBRTtZQUNuRCxPQUFPLE9BQU87aUJBQ1gsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2QsT0FBTyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BELENBQUM7WUFDSCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO1FBRUYsSUFBSSxZQUFZLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDN0IsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLGdEQUFnRDtnQkFFaEQsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUV6RCx5REFBeUQ7Z0JBQ3pELFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDckYsQ0FBQztRQUNILENBQUM7UUFDRCxxREFBcUQ7UUFDckQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELFNBQVMscUJBQXFCLENBQUMsR0FBVztZQUN4QyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDaEUsQ0FBQztRQUVELFNBQVMsbUJBQW1CLENBQUMsTUFBVztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQiwyQkFBMkI7Z0JBQzNCLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFGLENBQUM7aUJBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLE9BQU87WUFDVCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sbUNBQW1DO2dCQUVuQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDN0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyx5Q0FBeUM7Z0JBQzlFLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNqQixVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLFdBQVcsR0FBRyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsSUFBSSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELGdEQUFnRDtnQkFFaEQsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFFaEQseURBQXlEO2dCQUN6RCxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1lBQ2xGLENBQUM7UUFDSCxDQUFDO1FBQ0QscURBQXFEO1FBQ3JELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ1gsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFDckUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQ3RELElBQUksTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQ25DLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUN2QixDQUNGLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEIsT0FBTztnQkFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLFVBQVU7Z0JBQzFCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSzthQUN0QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXVCLEVBQUUsRUFBVyxFQUFFLElBQTZCO1FBQzNFLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksR0FDaEcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNsQixFQUFFLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXVCLEVBQUUsRUFBVTtRQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7UUFDM0csT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQXVCO1FBQzlCLGdFQUFnRTtRQUNoRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLFVBQVUsQ0FBQyxJQUFVLEVBQUUsS0FBYSxFQUFFLFNBQWtCO1FBQ3RELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLGVBQWUsQ0FBQztRQUN4RixNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWhDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFTLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsbUJBQW1CLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDOUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6RSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixRQUFRLENBQUMsRUFBVSxFQUFFLElBQVk7UUFDL0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxpQkFBaUIsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzlELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixZQUFZLENBQUMsRUFBVSxFQUFFLElBQVk7UUFDbkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxpQkFBaUIsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2xFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs4R0FqS1Usc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUERhdGFQcm92aWRlciwgQVhQRW50aXR5Q29uZmlnLCBBWFBfUk9PVF9DT05GSUdfVE9LRU4gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQmFja2VuZERhdGFQcm92aWRlciBpbXBsZW1lbnRzIEFYUERhdGFQcm92aWRlciB7XG4gIHByaXZhdGUgY29uZmlncyA9IGluamVjdChBWFBfUk9PVF9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIG1haW5VcmwgPSB0aGlzLmNvbmZpZ3MuYmFzZVVybDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgaW5zZXJ0T25lKGVudGl0eTogQVhQRW50aXR5Q29uZmlnLCBlbnRpdHlJdGVtOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0ke2VudGl0eS5hcmVhID8gJy8nICsgZW50aXR5LmFyZWEgOiAnJ30vJHtlbnRpdHkubW9kdWxlfS8ke2VudGl0eS5uYW1lfWA7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0KHVybCwgZW50aXR5SXRlbSkpO1xuICB9XG5cbiAgaW5zZXJ0TWFueShlbnRpdHk6IEFYUEVudGl0eUNvbmZpZywgZW50aXR5TGlzdDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBwcm9taXNlcyA9IGVudGl0eUxpc3QubWFwKChlbnRpdHk6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfSR7ZW50aXR5LmFyZWEgPyAnLycgKyBlbnRpdHkuYXJlYSA6ICcnfS8ke2VudGl0eS5tb2R1bGV9LyR7ZW50aXR5Lm5hbWV9YDtcbiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdCh1cmwsIGVudGl0eSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICBnZXRPbmUoZW50aXR5OiBBWFBFbnRpdHlDb25maWcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0ke2VudGl0eS5hcmVhID8gJy8nICsgZW50aXR5LmFyZWEgOiAnJ30vJHtlbnRpdHkubW9kdWxlfS8ke2VudGl0eS5uYW1lfSR7XG4gICAgICBpZCA/ICcvJyArIGlkIDogJydcbiAgICB9YDtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldCh1cmwpKTtcbiAgfVxuXG4gIGdldE1hbnkoZW50aXR5OiBBWFBFbnRpdHlDb25maWcsIHBhcmFtcz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdTa2lwJywgcGFyYW1zPy5za2lwPy50b1N0cmluZygpID8/ICcwJylcbiAgICAgIC5zZXQoJ1Rha2UnLCBwYXJhbXM/LnRha2U/LnRvU3RyaW5nKCkgPz8gJzEwJyk7XG4gICAgaWYgKHBhcmFtcz8uc29ydCAmJiBwYXJhbXM/LnNvcnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc29ydFBhcmFtID0gcGFyYW1zPy5zb3J0Lm1hcCgoc29ydDogYW55KSA9PiBgJHtzb3J0LmZpZWxkfToke3NvcnQuZGlyfWApLmpvaW4oJywnKTtcbiAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgnJG9yZGVyYnknLCBzb3J0UGFyYW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkRmlsdGVyU3RyaW5nID0gKGZpbHRlcnM6IGFueVtdKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiBmaWx0ZXJzXG4gICAgICAgIC5tYXAoKGY6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChmLmZpbHRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBidWlsZEZpbHRlclN0cmluZyhmLmZpbHRlcnMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Zi5maWVsZH0gJHtmLm9wZXJhdG9yLnR5cGV9ICR7Zi52YWx1ZX1gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywnKTtcbiAgICB9O1xuXG4gICAgbGV0IGZpbHRlclN0cmluZyA9IHBhcmFtcz8uY3VzdG9tRmlsdGVyID8gcGFyYW1zLmN1c3RvbUZpbHRlciA6ICcnO1xuICAgIGlmIChwYXJhbXM/LmZpbHRlcikge1xuICAgICAgY29uc3QgZmlsdGVyID0gcGFyYW1zLmZpbHRlcjtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVycykge1xuICAgICAgICAvLyBDb25zdHJ1Y3QgZmlsdGVyIHN0cmluZyBmcm9tIHByb3ZpZGVkIGZpbHRlcnNcblxuICAgICAgICBjb25zdCBkeW5hbWljRmlsdGVycyA9IGJ1aWxkRmlsdGVyU3RyaW5nKGZpbHRlci5maWx0ZXJzKTtcblxuICAgICAgICAvLyBBcHBlbmQgZHluYW1pYyBmaWx0ZXJzIHRvIGN1c3RvbSBmaWx0ZXIsIGlmIGJvdGggZXhpc3RcbiAgICAgICAgZmlsdGVyU3RyaW5nID0gZmlsdGVyU3RyaW5nID8gYCR7ZmlsdGVyU3RyaW5nfSwke2R5bmFtaWNGaWx0ZXJzfWAgOiBkeW5hbWljRmlsdGVycztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2V0IHRoZSAkZmlsdGVyIHBhcmFtZXRlciBpZiB0aGVyZSBhcmUgYW55IGZpbHRlcnNcbiAgICBpZiAoZmlsdGVyU3RyaW5nKSB7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJyRmaWx0ZXInLCBmaWx0ZXJTdHJpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoc3RyOiBzdHJpbmcpIHtcbiAgICAgIHJldHVybiBzdHIgPyBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBzdHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2VuZXJhdGVRdWVyeVN0cmluZyhmaWx0ZXI6IGFueSkge1xuICAgICAgaWYgKCFmaWx0ZXIuZmlsdGVycykge1xuICAgICAgICAvLyBCYXNlIGNhc2U6IHNpbmdsZSBmaWx0ZXJcbiAgICAgICAgcmV0dXJuIGAke2NhcGl0YWxpemVGaXJzdExldHRlcihmaWx0ZXIuZmllbGQpfSAke2ZpbHRlci5vcGVyYXRvci50eXBlfSAke2ZpbHRlci52YWx1ZX1gO1xuICAgICAgfSBlbHNlIGlmICghZmlsdGVyLmZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlY3Vyc2l2ZSBjYXNlOiBtdWx0aXBsZSBmaWx0ZXJzXG5cbiAgICAgICAgY29uc3QgZmlsdGVyU3RyaW5ncyA9IGZpbHRlci5maWx0ZXJzLm1hcCgoc3ViRmlsdGVyOiBhbnkpID0+IGdlbmVyYXRlUXVlcnlTdHJpbmcoc3ViRmlsdGVyKSk7XG4gICAgICAgIGNvbnN0IGxvZ2ljID0gZmlsdGVyLmxvZ2ljIHx8ICdBTkQnOyAvLyBEZWZhdWx0IGxvZ2ljIGlzICdBTkQnIGlmIG5vdCBwcm92aWRlZFxuICAgICAgICByZXR1cm4gYCR7ZmlsdGVyU3RyaW5ncy5maWx0ZXIoKGk6IGFueSkgPT4gaSkuam9pbihgICR7bG9naWN9IGApfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtcz8uZGF0ZSkge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdEYXRlJywgcGFyYW1zLmRhdGUpO1xuICAgIH1cblxuICAgIGxldCBxdWVyeVN0cmluZyA9IHBhcmFtcz8uY3VzdG9tRmlsdGVyID8gcGFyYW1zLmN1c3RvbUZpbHRlciA6ICcnO1xuICAgIGlmIChwYXJhbXM/LmZpbHRlcikge1xuICAgICAgY29uc3QgZmlsdGVyID0gcGFyYW1zLmZpbHRlcjtcbiAgICAgIGlmIChmaWx0ZXIuZmlsdGVycyAmJiBmaWx0ZXIuZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIENvbnN0cnVjdCBmaWx0ZXIgc3RyaW5nIGZyb20gcHJvdmlkZWQgZmlsdGVyc1xuXG4gICAgICAgIGNvbnN0IGR5bmFtaWNRdWVyaWVzID0gZ2VuZXJhdGVRdWVyeVN0cmluZyhmaWx0ZXIpO1xuICAgICAgICBjb25zb2xlLmxvZyh7IGR5bmFtaWNRdWVyaWVzOiBkeW5hbWljUXVlcmllcyB9KTtcblxuICAgICAgICAvLyBBcHBlbmQgZHluYW1pYyBmaWx0ZXJzIHRvIGN1c3RvbSBmaWx0ZXIsIGlmIGJvdGggZXhpc3RcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZyA/IGAke3F1ZXJ5U3RyaW5nfSwke2R5bmFtaWNRdWVyaWVzfWAgOiBkeW5hbWljUXVlcmllcztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2V0IHRoZSAkZmlsdGVyIHBhcmFtZXRlciBpZiB0aGVyZSBhcmUgYW55IGZpbHRlcnNcbiAgICBpZiAocXVlcnlTdHJpbmcpIHtcbiAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldCgnJHF1ZXJ5JywgcXVlcnlTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAuZ2V0PGFueT4oXG4gICAgICAgIGAke3RoaXMubWFpblVybH0ke2VudGl0eS5hcmVhID8gJy8nICsgZW50aXR5LmFyZWEgOiAnJ30vJHtlbnRpdHkubW9kdWxlfS8ke1xuICAgICAgICAgIHBhcmFtcz8uY29zdHVtR2V0dGVyID8gcGFyYW1zLmNvc3R1bUdldHRlciA6IGVudGl0eS5uYW1lXG4gICAgICAgIH0vJHtwYXJhbXM/LnN1YiA/IHBhcmFtcy5zdWIgOiAnJ31gLFxuICAgICAgICB7IHBhcmFtczogaHR0cFBhcmFtcyB9XG4gICAgICApXG4gICAgKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdG90YWw6IHJlc3BvbnNlLnRvdGFsQ291bnQsXG4gICAgICAgIGl0ZW1zOiByZXNwb25zZS5pdGVtcyxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVPbmUoZW50aXR5OiBBWFBFbnRpdHlDb25maWcsIGlkPzogc3RyaW5nLCBkYXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfSR7ZW50aXR5LmFyZWEgPyAnLycgKyBlbnRpdHkuYXJlYSA6ICcnfS8ke2VudGl0eS5tb2R1bGV9LyR7ZW50aXR5Lm5hbWV9JHtcbiAgICAgIGlkID8gJy8nICsgaWQgOiAnJ1xuICAgIH1gO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0KHVybCwgZGF0YSkpO1xuICB9XG5cbiAgZGVsZXRlT25lKGVudGl0eTogQVhQRW50aXR5Q29uZmlnLCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9JHtlbnRpdHkuYXJlYSA/ICcvJyArIGVudGl0eS5hcmVhIDogJyd9LyR7ZW50aXR5Lm1vZHVsZX0vJHtlbnRpdHkubmFtZX0vJHtpZH1gO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZGVsZXRlKHVybCkpO1xuICB9XG5cbiAgZ2V0Rmlyc3QoZW50aXR5OiBBWFBFbnRpdHlDb25maWcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vIHJldHVybiB0aGlzLmdldE1hbnkoZW50aXR5Lm5hbWUpLnRoZW4oKHJlcykgPT4gcmVzLml0ZW1zWzBdKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHJlc29sdmUodHJ1ZSkpO1xuICB9XG5cbiAgLy8gRmlsZSB1cGxvYWRlciBmdW5jdGlvblxuICB1cGxvYWRGaWxlKGZpbGU6IEZpbGUsIHRpdGxlOiBzdHJpbmcsIGN1c3RvbVVybD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdXJsID0gY3VzdG9tVXJsID8gYCR7dGhpcy5tYWluVXJsfS8ke2N1c3RvbVVybH1gIDogYCR7dGhpcy5tYWluVXJsfS9jb21tb24vZmlsZXNgO1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnRmlsZScsIGZpbGUpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnVGl0bGUnLCB0aXRsZSk7XG5cbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8c3RyaW5nPih1cmwsIGZvcm1EYXRhKSk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byB1cGxvYWQgbXVsdGlwbGUgZmlsZXNcbiAgdXBsb2FkTXVsdGlwbGVGaWxlcyhmaWxlczogRmlsZVtdLCB0aXRsZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHVwbG9hZFByb21pc2VzID0gZmlsZXMubWFwKChmaWxlKSA9PiB0aGlzLnVwbG9hZEZpbGUoZmlsZSwgdGl0bGUpKTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwodXBsb2FkUHJvbWlzZXMpO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gdmlldyBhIGZpbGVcbiAgdmlld0ZpbGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfS9jb21tb24vZmlsZXMvJHtpZH0vVmlldy8ke25hbWV9YDtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkpO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gZG93bmxvYWQgYSBmaWxlXG4gIGRvd25sb2FkRmlsZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJsb2I+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9L2NvbW1vbi9maWxlcy8ke2lkfS9Eb3dubG9hZC8ke25hbWV9YDtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkpO1xuICB9XG59XG4iXX0=
|