@tiba-spark/client-shared-lib 26.2.0-228 → 26.2.0-241
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/esm2022/libraries/constants/version-constants.mjs +2 -1
- package/esm2022/libraries/modules/facility/facility.state.mjs +9 -4
- package/esm2022/libraries/modules/login/login.actions.mjs +1 -1
- package/esm2022/libraries/modules/login/login.state.mjs +8 -2
- package/esm2022/libraries/modules/park-manager/park-manager.actions.mjs +7 -1
- package/esm2022/libraries/modules/park-manager/park-manager.state.mjs +20 -3
- package/fesm2022/tiba-spark-client-shared-lib.mjs +41 -6
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/constants/version-constants.d.ts +1 -0
- package/libraries/constants/version-constants.d.ts.map +1 -1
- package/libraries/modules/facility/facility.state.d.ts.map +1 -1
- package/libraries/modules/login/login.actions.d.ts +2 -2
- package/libraries/modules/login/login.actions.d.ts.map +1 -1
- package/libraries/modules/login/login.state.d.ts.map +1 -1
- package/libraries/modules/park-manager/park-manager.actions.d.ts +5 -0
- package/libraries/modules/park-manager/park-manager.actions.d.ts.map +1 -1
- package/libraries/modules/park-manager/park-manager.state.d.ts +4 -1
- package/libraries/modules/park-manager/park-manager.state.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -77,4 +77,4 @@ export class BackofficeAutheticateAction {
|
|
|
77
77
|
this.tenantInfo = tenantInfo;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvbW9kdWxlcy9sb2dpbi9sb2dpbi5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxvQkFBb0I7YUFDUixTQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFdkQsWUFBbUIsS0FBYSxFQUFTLFFBQXVCO1FBQTdDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFlO0lBQ2hFLENBQUM7O0FBR0gsTUFBTSxPQUFPLDhCQUE4QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsWUFBbUIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDaEMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNEJBQTRCO2FBQ2hCLFNBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUU1RCxZQUFtQixRQUFrQixFQUFTLFVBQWtCLEVBQVMsYUFBbUM7UUFBekYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7SUFDNUcsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNkJBQTZCO2FBQ2pCLFNBQUksR0FBRyw4QkFBOEIsQ0FBQztJQUU3RCxZQUFtQixRQUFnQixFQUFTLFFBQWdCO1FBQXpDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQzVELENBQUM7O0FBR0gsTUFBTSxPQUFPLHdCQUF3QjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUUzRCxZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ25DLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUV0RCxZQUFtQixLQUFhLEVBQVMsU0FBNkI7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBQ3BFLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7O0FBR0gsTUFBTSxPQUFPLGlDQUFpQzthQUNyQixTQUFJLEdBQUcscUNBQXFDLENBQUM7SUFFcEUsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUM1RCxDQUFDOztBQUdILE1BQU0sT0FBTyxpQ0FBaUM7YUFDckIsU0FBSSxHQUFHLDJDQUEyQyxDQUFDO0lBRTFFLFlBQW1CLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFdBQVcsS0FBSztRQUE5RCxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDakYsQ0FBQzs7QUFHSCxNQUFNLE9BQU8saUJBQWlCO2FBQ0wsU0FBSSxHQUFHLDJCQUEyQixDQUFDO0lBRTFELFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQzNDLENBQUM7O0FBR0gsTUFBTSxPQUFPLHVCQUF1QjthQUNYLFNBQUksR0FBRyxpQ0FBaUMsQ0FBQztJQUNoRSxZQUFtQixLQUFhLEVBQVMsb0JBQTBDLEVBQVMsVUFBc0IsRUFBUyxvQkFBNkIsS0FBSztRQUExSSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWlCO0lBQzdKLENBQUM7O0FBR0gsTUFBTSxPQUFPLDJCQUEyQjthQUNmLFNBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUNwRSxZQUFtQixLQUFhLEVBQVMsVUFBc0I7UUFBNUMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRmYVNldHVwRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBQYXNzd29yZENoYW5nZVR5cGUsIFNpbmdsZVNpZ25PblByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvaWRlbnRpdHktc2VydmljZS1wcm94aWVzXCI7XG5pbXBvcnQgeyBUZW5hbnRJbmZvIH0gZnJvbSBcIi4uL2F1dGgvbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gXCIuLi9hdXRoL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIEZvcmdvdFBhc3N3b3JkQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gRm9yZ290UGFzc3dvcmQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbWFpbDogc3RyaW5nLCBwdWJsaWMgdGVuYW50SWQ6IG51bWJlciB8IG51bGwpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW1haWw6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1thY2NvdW50LXNldC1wYXNzd29yZF0gSW5pdCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJJbmZvOiBVc2VySW5mbywgcHVibGljIHRlbmFudE5hbWU6IHN0cmluZywgcHVibGljIGNvbXBvbmVudFR5cGU6IChQYXNzd29yZENoYW5nZVR5cGUpKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1thY2NvdW50LXNldC1wYXNzd29yZF0gRXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvck1zZzogc3RyaW5nLCBwdWJsaWMgdXNlcm5hbWU6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2FjY291bnQtc2V0LXBhc3N3b3JkXSBTZXQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXNzd29yZDogc3RyaW5nKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRlVXNlclRva2VuQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1t2YWxpZGF0ZS10b2tlbl0gVXNlcic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRva2VuOiBzdHJpbmcsIHB1YmxpYyB0b2tlblR5cGU6IFBhc3N3b3JkQ2hhbmdlVHlwZSkge1xuICAgIGNvbnNvbGUuZGVidWcoJ2NvbiAnLCB0b2tlblR5cGUsIHR5cGVvZiB0b2tlblR5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VybmFtZTogc3RyaW5nLCBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW2xvZ2luXSBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nLCBwdWJsaWMgY29kZTogc3RyaW5nLCBwdWJsaWMgc2V0dXAyRmEgPSBmYWxzZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRURkFTZXR1cEFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIFNldFRGQVNldHVwQWN0aW9uJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGZhU2V0dXBEdG86IFRmYVNldHVwRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9wZW5JZEF1dGhldGljYXRlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tsb2dpbl0gT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24nO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdG9rZW46IHN0cmluZywgcHVibGljIHNpbmdsZVNpZ25PblByb3ZpZGVyOiBTaW5nbGVTaWduT25Qcm92aWRlciwgcHVibGljIHRlbmFudEluZm86IFRlbmFudEluZm8sIHB1YmxpYyBpc1BlbmRpbmdBcHByb3ZhbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbbG9naW5dIEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbic7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0b2tlbjogc3RyaW5nLCBwdWJsaWMgdGVuYW50SW5mbzogVGVuYW50SW5mbykge1xuICB9XG59XG4iXX0=
|
|
@@ -85,7 +85,13 @@ let LoginState = class LoginState {
|
|
|
85
85
|
this.sessionStorageService.setItem(RESET_PASSWORD_EMAIL, JSON.stringify(email));
|
|
86
86
|
this.store.dispatch(new Navigate(url));
|
|
87
87
|
this.messageBarService.success(Localization.forgot_password_email_sent_msg, this.messageOptions);
|
|
88
|
-
|
|
88
|
+
// Pre-authentication the tenant id is unknown: TenantDetailsDto carries no id, so the tenant
|
|
89
|
+
// resolver leaves tenantInfo.id null. Passing null to forgotPassword throws synchronously
|
|
90
|
+
// ("The parameter 'tenantId' cannot be null."). Fall back to the tenantless endpoint, which
|
|
91
|
+
// resolves the tenant server-side from the email address.
|
|
92
|
+
return tenantId != null
|
|
93
|
+
? this.usersCloudServiceProxy.forgotPassword(email, tenantId)
|
|
94
|
+
: this.usersCloudServiceProxy.forgotPasswordTenantless(email);
|
|
89
95
|
}
|
|
90
96
|
onForgotPasswordTenantless(ctx, { email }) {
|
|
91
97
|
this.messageBarService.success(Localization.forgot_password_email_sent_msg, this.messageOptions);
|
|
@@ -390,4 +396,4 @@ export { LoginState };
|
|
|
390
396
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoginState, decorators: [{
|
|
391
397
|
type: Injectable
|
|
392
398
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.UsersCloudServiceProxy }, { type: i3.BackofficeUserIdentityServiceProxy }, { type: i4.OpenIdAuthService }, { type: i3.UsersIdentityServiceProxy }, { type: i5.AuthService }, { type: i6.SessionStorageService }, { type: i7.LoginService }, { type: i8.TranslateService }, { type: i9.MsalService }, { type: i10.MessageBarService }, { type: i11.AppConfigService }, { type: i12.RouteService }], propDecorators: { onAuthenticateMultipleTenantsAction: [], onForgotPassword: [], onForgotPasswordTenantless: [], onAccountSetPasswordInitAction: [], onAccountSetPasswordErrorAction: [], onAccountSetPasswordAction: [], onValidateUserTokenAction: [], onVerify2FactorAuthenticationAction: [], onSetTFASetupAction: [], onBackofficeAutheticateAction: [], onOpenIdAutheticateAction: [] } });
|
|
393
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFDZ0MsZUFBZSxFQUNILFVBQVUsRUFBRSxxQkFBcUIsRUFDbkYsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQWdDLHNCQUFzQixFQUNoRCw0QkFBNEIsRUFDckUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQ3hDLDJCQUEyQixFQUM1QixNQUFNLDhDQUE4QyxDQUFDO0FBS3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsb0NBQW9DLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNy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QjtBQTdTYTtJQURiLFFBQVEsRUFBRTs2Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7Z0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtvQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2dDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7bUNBR1Y7QUF6Q1UsVUFBVTtJQVh0QixLQUFLLENBQWtCO1FBQ3RCLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVM7WUFDbkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsU0FBUztTQUNwQjtLQUNGLENBQUM7R0FDVyxVQUFVLENBd1Z0Qjs7NEZBeFZZLFVBQVU7a0JBWnRCLFVBQVU7dWRBd0RGLG1DQUFtQyxNQWlCbkMsZ0JBQWdCLE1BWWhCLDBCQUEwQixNQU8xQiw4QkFBOEIsTUFROUIsK0JBQStCLE1BUy9CLDBCQUEwQixNQXdDMUIseUJBQXlCLE1Bd0N6QixtQ0FBbUMsTUEwQm5DLG1CQUFtQixNQXdDbkIsNkJBQTZCLE1BaUM3Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ2xlYXJDYWNoZVJlcXVlc3QgfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRlIH0gZnJvbSAnQG5neHMvcm91dGVyLXBsdWdpbic7XG5pbXBvcnQgeyBBY3Rpb24sIFNlbGVjdG9yLCBTdGF0ZSwgU3RhdGVDb250ZXh0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNzYWdlQmFyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLXBvc2l0aW9uLmVudW0nO1xuaW1wb3J0IHsgTWVzc2FnZUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL21lc3NhZ2UtYmFyL21lc3NhZ2UtYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUkVTRVRfUEFTU1dPUkRfRU1BSUwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMva2V5cy1jb25zdGFudHMnO1xuaW1wb3J0IHsgQXBwVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2FwcC10eXBlLmVudW0nO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uIH0gZnJvbSAnLi4vLi4vZW51bXMvbG9jYWxpemF0aW9uLmVudW0nO1xuaW1wb3J0IHtcbiAgQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEsIEFjdGl2YXRlVXNlckR0bywgQXBpRXhjZXB0aW9uLCBQcm9ibGVtRGV0YWlscywgVGZhU2V0dXBEdG8sXG4gIFVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhLCBVc2Vyc0Nsb3VkU2VydmljZVByb3h5LCBVc2VyU3RhdHVzLCBVc2VyVXBkYXRlUGFzc3dvcmREdG9cbn0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHtcbiAgQXV0aGVudGljYXRlQmFja29mZmljZVNzb1JlcXVlc3REdG8sIEF1dGhlbnRpY2F0ZUVycm9yUmVzcG9uc2VEdG8sIEF1dGhlbnRpY2F0ZVJlcXVlc3REdG8sIEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvLFxuICBBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEsIEF1dGhlbnRpY2F0ZVdlYlNzb1JlcXVlc3REdG8sIEJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHksXG4gIFBhc3N3b3JkQ2hhbmdlVHlwZSwgU2luZ2xlU2lnbk9uUHJvdmlkZXIsIFVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHksIFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhLFxuICBWZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8sIFZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0RHRvSHR0cFJlc3BvbnNlRGF0YVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2lkZW50aXR5LXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9wZW5JZEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3BlbmlkLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yb3V0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IHBhcnNlQXBpRXJyb3JEYXRhLCBwYXJzZUFwaUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS1oZWxwZXIudXRpbCc7XG5pbXBvcnQgeyBTdHJpbmdNYXAgfSBmcm9tICcuLi8uLi91dGlscy9sYW5nLnV0aWwnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uL2F1dGgvbW9kZWwvdXNlci1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBIZWFsdGhBY3Rpb24sIExvYWRBcHBDb25maWd1cmF0aW9uQWN0aW9uLCBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24sIFNldFRlbmFudFVzZXJBY3Rpb24sIFVwZGF0ZUF1dGhUb2tlbkFjdGlvbiB9IGZyb20gJy4uL2F1dGgvc2Vzc2lvbi5hY3Rpb25zJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL2F1dGgvc2Vzc2lvbi5zdGF0ZSc7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24sIEFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uLCBBY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uLCBBdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24sXG4gIEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbiwgRm9yZ290UGFzc3dvcmRBY3Rpb24sIEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzc0FjdGlvbixcbiAgT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24sIFNldFRGQVNldHVwQWN0aW9uLCBWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbiwgVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uXG59IGZyb20gJy4vbG9naW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luU3RhdGVNb2RlbCB7XG4gIHVzZXJJbmZvOiBVc2VySW5mbztcbiAgdGVuYW50TmFtZTogc3RyaW5nO1xuICBwYXNzd29yZENoYW5nZVR5cGU6IFBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgYWNjb3VudHM6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW107XG4gIGFjY291bnRzTWFwOiBTdHJpbmdNYXA8QXV0aGVudGljYXRlUmVzcG9uc2VEdG8+O1xuICB0ZmFTZXR1cDogVGZhU2V0dXBEdG87XG59XG5cbkBJbmplY3RhYmxlKClcbkBTdGF0ZTxMb2dpblN0YXRlTW9kZWw+KHtcbiAgbmFtZTogJ2xvZ2luJyxcbiAgZGVmYXVsdHM6IHtcbiAgICB1c2VySW5mbzogdW5kZWZpbmVkLFxuICAgIHRlbmFudE5hbWU6ICcnLFxuICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogdW5kZWZpbmVkLFxuICAgIGFjY291bnRzOiBbXSxcbiAgICBhY2NvdW50c01hcDoge30sXG4gICAgdGZhU2V0dXA6IHVuZGVmaW5lZCxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblN0YXRlIHtcblxuICBwcml2YXRlIG1lc3NhZ2VPcHRpb25zID0geyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgdXNlcnNDbG91ZFNlcnZpY2VQcm94eTogVXNlcnNDbG91ZFNlcnZpY2VQcm94eSxcbiAgICBwcml2YXRlIGJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHk6IEJhY2tvZmZpY2VVc2VySWRlbnRpdHlTZXJ2aWNlUHJveHksIHByaXZhdGUgb3BlbklkQXV0aFNlcnZpY2U6IE9wZW5JZEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eTogVXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLCBwcml2YXRlIG1lc3NhZ2VCYXJTZXJ2aWNlOiBNZXNzYWdlQmFyU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWc6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZVNlcnZpY2U6IFJvdXRlU2VydmljZSkge1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0d29GYWN0b3JTZXR1cEZvclVzZXIoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFRmYVNldHVwRHRvIHtcbiAgICByZXR1cm4gc3RhdGUudGZhU2V0dXA7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHRlbmFudE5hbWUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0YXRlLnRlbmFudE5hbWU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIHVzZXJJbmZvKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBVc2VySW5mbyB7XG4gICAgcmV0dXJuIHN0YXRlLnVzZXJJbmZvO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZVR5cGUoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFBhc3N3b3JkQ2hhbmdlVHlwZSB7XG4gICAgcmV0dXJuIHN0YXRlLnBhc3N3b3JkQ2hhbmdlVHlwZTtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHMoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvW10ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50cztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudHNNYXAoc3RhdGU6IExvZ2luU3RhdGVNb2RlbCk6IFN0cmluZ01hcDxBdXRoZW50aWNhdGVSZXNwb25zZUR0bz4ge1xuICAgIHJldHVybiBzdGF0ZS5hY2NvdW50c01hcDtcbiAgfVxuXG4gIEBBY3Rpb24oQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKVxuICBwdWJsaWMgb25BdXRoZW50aWNhdGVNdWx0aXBsZVRlbmFudHNBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by51c2VybmFtZSA9IHVzZXJuYW1lO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8ucGFzc3dvcmQgPSBwYXNzd29yZDtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnRlbmFudE5hbWUgPSAnJztcbiAgICByZXR1cm4gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5Lm11bHRpVGVuYW50c0F1dGhlbnRpY2F0ZShhdXRoZW50aWNhdGVSZXF1ZXN0RHRvKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhY2NvdW50c0h0dHBSZXNwb25zZURhdGEgPT4ge1xuICAgICAgICBjb25zdCBhY2NvdW50cyA9IGFjY291bnRzSHR0cFJlc3BvbnNlRGF0YS5kYXRhO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgYWNjb3VudHNcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4gdGhpcy5hdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlKVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oRm9yZ290UGFzc3dvcmRBY3Rpb24pXG4gIHB1YmxpYyBvbkZvcmdvdFBhc3N3b3JkKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZW1haWwsIHRlbmFudElkIH06IEZvcmdvdFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgY29uc3QgaXNNb2JpbGVBcHBNb2RlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5Nb2JpbGU7XG4gICAgY29uc3QgcGF0aCA9IFsnYWNjb3VudCcsICdmb3Jnb3QtcGFzc3dvcmQtc3VjY2VzcyddO1xuICAgIGNvbnN0IHVybCA9IGlzTW9iaWxlQXBwTW9kZSA/IHBhdGggOiB0aGlzLnJvdXRlU2VydmljZS5nZXROYXZpZ2F0aW9uUm91dGUocGF0aCk7XG5cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKFJFU0VUX1BBU1NXT1JEX0VNQUlMLCBKU09OLnN0cmluZ2lmeShlbWFpbCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IE5hdmlnYXRlKHVybCkpO1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2Uuc3VjY2VzcyhMb2NhbGl6YXRpb24uZm9yZ290X3Bhc3N3b3JkX2VtYWlsX3NlbnRfbXNnLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LmZvcmdvdFBhc3N3b3JkKGVtYWlsLCB0ZW5hbnRJZCk7XG4gIH1cblxuICBAQWN0aW9uKEZvcmdvdFBhc3N3b3JkVGVuYW50bGVzc0FjdGlvbilcbiAgcHVibGljIG9uRm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZW1haWwgfTogRm9yZ290UGFzc3dvcmRBY3Rpb24pIHtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLmZvcmdvdF9wYXNzd29yZF9lbWFpbF9zZW50X21zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5mb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MoZW1haWwpO1xuICB9XG5cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEluaXRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VySW5mbywgY29tcG9uZW50VHlwZSB9KSB7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdXNlckluZm8sXG4gICAgICBwYXNzd29yZENoYW5nZVR5cGU6IGNvbXBvbmVudFR5cGVcbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkRXJyb3JBY3Rpb24pXG4gIHB1YmxpYyBvbkFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgZXJyb3JNc2csIHVzZXJuYW1lIH0pIHtcbiAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSB7IC4uLnVzZXJuYW1lIH07XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgdXNlckluZm9cbiAgICB9KTtcbiAgfVxuXG4gIEBBY3Rpb24oQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyBwYXNzd29yZCB9OiBBY2NvdW50U2V0UGFzc3dvcmRBY3Rpb24pIHtcbiAgICBjb25zdCB1c2VySW5mbyA9IGN0eC5nZXRTdGF0ZSgpLnVzZXJJbmZvO1xuICAgIGxldCBkYXRhOiBhbnk7XG4gICAgbGV0IHNldFBhc3N3b3JkJDogT2JzZXJ2YWJsZTxVc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSB8IEFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhPjtcblxuICAgIGlmICh0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlID09PSBBcHBUeXBlLkNsb3VkKSB7XG4gICAgICBkYXRhID0gbmV3IEFjdGl2YXRlVXNlckR0byh7XG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG51bGwsXG4gICAgICAgIHVzZXJTdGF0dXM6IHVzZXJJbmZvLnN0YXR1cyBhcyBVc2VyU3RhdHVzXG4gICAgICB9KTtcblxuICAgICAgc2V0UGFzc3dvcmQkID0gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LmFjdGl2YXRlKGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gbmV3IFVzZXJVcGRhdGVQYXNzd29yZER0byh7XG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICBjdXJyZW50UGFzc3dvcmQ6IG51bGxcbiAgICAgIH0pO1xuICAgICAgc2V0UGFzc3dvcmQkID0gdGhpcy51c2Vyc0Nsb3VkU2VydmljZVByb3h5LnVwZGF0ZVVzZXJQYXNzd29yZChkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0UGFzc3dvcmQkLnBpcGUoXG4gICAgICBtYXAoKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhOiBBY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAoYWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEuZGF0YS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICB0ZmFTZXR1cDogYWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEuZGF0YT8udGZhU2V0dXAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGUgPT4ge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKGVycm9yTWVzc2FnZSwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yTWVzc2FnZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQWN0aW9uKFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKVxuICBwdWJsaWMgb25WYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHRva2VuLCB0b2tlblR5cGUgfTogVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24pIHtcbiAgICBjb25zdCBwY3Q6IGFueSA9IFBhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdO1xuICAgIHJldHVybiB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkudmFsaWRhdGVBY3RpdmF0aW9uKHRva2VuLCBQYXNzd29yZENoYW5nZVR5cGVbUGFzc3dvcmRDaGFuZ2VUeXBlW3Rva2VuVHlwZV1dKS5waXBlKHRhcCh7XG4gICAgICBuZXh0OiAodXNlcjogVmFsaWRhdGVBY3RpdmF0aW9uVXNlckR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHVzZXI/LmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB1c2VySW5mbzogVXNlckluZm8gPSB7XG4gICAgICAgICAgICB1c2VySWQ6IHVzZXIuZGF0YS5pZCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB1c2VyLmRhdGEudU5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogYCR7dXNlci5kYXRhLm5hbWV9ICR7dXNlci5kYXRhLmxhc3ROYW1lfWAsXG4gICAgICAgICAgICBzdGF0dXM6IHVzZXIuZGF0YS5zdGF0dXMsXG4gICAgICAgICAgICBwbWw6IHVzZXIuZGF0YS5wbWxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICh1c2VyLmRhdGEuc3RhdHVzICE9PSBVc2VyU3RhdHVzLkJsb2NrZWQpIHtcbiAgICAgICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICAgICAgdXNlckluZm8sXG4gICAgICAgICAgICAgIHBhc3N3b3JkQ2hhbmdlVHlwZTogcGN0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoTG9jYWxpemF0aW9uLm5vbl9hY3RpdmVfdXNlciwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICBjb25zdCBlcnJvckpzb246IFByb2JsZW1EZXRhaWxzID0gSlNPTi5wYXJzZShlLnJlc3BvbnNlKSBhcyBQcm9ibGVtRGV0YWlscztcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihwYXJzZUFwaUVycm9yTWVzc2FnZShlKSwgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG4gICAgICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgICAgICB1c2VySW5mbzoge1xuICAgICAgICAgICAgdXNlcm5hbWU6IGVycm9ySnNvbi5pbnN0YW5jZSxcbiAgICAgICAgICAgIHVzZXJJZDogbnVsbCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBudWxsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24pXG4gIHB1YmxpYyBvblZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHVzZXJOYW1lLCBjb2RlLCBzZXR1cDJGYSB9OiBWZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24pIHtcbiAgICBjb25zdCB2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8gPSBuZXcgVmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKHtcbiAgICAgIGNvZGUsXG4gICAgICB1c2VyTmFtZVxuICAgIH0pO1xuXG4gICAgbGV0IHZlcmlmeTJGYWN0b3JBdXRoJDogT2JzZXJ2YWJsZTxWZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldER0b0h0dHBSZXNwb25zZURhdGE+O1xuICAgIGlmIChzZXR1cDJGYSkge1xuICAgICAgdmVyaWZ5MkZhY3RvckF1dGgkID0gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5LnZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbih2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8pO1xuICAgIH0gZWxzZSB7IC8vIGxvZ2luIGZvciB1c2VyIHdpdGggMkZBIChhbHJlYWR5IHNldCB1cClcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25Mb2dpbih2ZXJpZnkyRmFjdG9yQXV0aFJlcXVlc3REdG8pO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZnkyRmFjdG9yQXV0aCQucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0OiBWZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldER0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuYWNjZXNzVG9rZW4gPSB2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLmFjY2Vzc1Rva2VuO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZWZyZXNoVG9rZW4gPSB2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQXV0aFRva2VuQWN0aW9uKHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEuYWNjZXNzVG9rZW4sdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5yZWZyZXNoVG9rZW4pKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oU2V0VEZBU2V0dXBBY3Rpb24pXG4gIHB1YmxpYyBvblNldFRGQVNldHVwQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdGZhU2V0dXBEdG8gfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHRmYVNldHVwOiB0ZmFTZXR1cER0b1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvbkVycm9yTWVzc2FnZUJhcihlcnJvcjogQXBpRXhjZXB0aW9uKSB7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gcGFyc2VBcGlFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIGNvbnN0IGRhdGEgPSBwYXJzZUFwaUVycm9yRGF0YTxBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvPihlcnJvcik7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMsIG1lc3NhZ2VQYXJhbXM6IHsgdGVtcG9yYXJ5TG9ja2VkTWludXRlczogZGF0YT8udGVtcG9yYXJ5QmxvY2tlZFRpbWUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJNc2xMb2dpbkNhY2hlKCkge1xuICAgIGNvbnN0IGNsZWFyQ2FjaGVSZXF1ZXN0OiBDbGVhckNhY2hlUmVxdWVzdCA9IHtcbiAgICAgIGFjY291bnQ6IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXSxcbiAgICB9O1xuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuY2xlYXJDYWNoZShjbGVhckNhY2hlUmVxdWVzdCk7XG4gICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcjogU2luZ2xlU2lnbk9uUHJvdmlkZXIpIHtcbiAgICBzd2l0Y2ggKHNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdDpcbiAgICAgICAgdGhpcy5jbGVhck1zbExvZ2luQ2FjaGUoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2luZ2xlU2lnbk9uUHJvdmlkZXIuUGluZ0ZlZGVyYXRlOlxuICAgICAgICB0aGlzLm9wZW5JZEF1dGhTZXJ2aWNlLnNpZ25PdXQoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSB1c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyA9IChhdXRoUmVzcG9uc2U6IEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YSk6IGJvb2xlYW4gPT5cbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8uaXNBdXRoZW50aWNhdGVkID09PSBmYWxzZSAmJlxuICAgIGF1dGhSZXNwb25zZS5kYXRhLnNpbmdsZVNpZ25PbkF1dGhlbnRpY2F0aW9uRHRvPy51c2VyU3RhdHVzID09PSBVc2VyU3RhdHVzLkF3YWl0aW5nQWNjZXNzO1xuXG4gIEBBY3Rpb24oQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKVxuICBwdWJsaWMgb25CYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdGVuYW50SW5mbyB9OiBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24pIHtcbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZUJhY2tvZmZpY2VTc29SZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5jb2RlID0gdG9rZW47XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by50ZW5hbnROYW1lID0gdGVuYW50SW5mbz8udGVuYW50TmFtZTtcblxuICAgIGNvbnN0IGF1dGhlbnRpY2F0ZU9pZGMkID0gdGhpcy5iYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LmJhY2tvZmZpY2VBdXRoZW50aWNhdGUoYXV0aGVudGljYXRlUmVxdWVzdER0byk7XG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFya1Nlc3Npb24gPSB0aGlzLmF1dGhTZXJ2aWNlLnByb2Nlc3NBdXRoZW50aWNhdGUoYXV0aFJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFRlbmFudFVzZXJBY3Rpb24oc3BhcmtTZXNzaW9uKSk7XG4gICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoU2luZ2xlU2lnbk9uUHJvdmlkZXIuTWljcm9zb2Z0KTtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLndhcm4obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAvLyBBZnRlciBhdXRoZW50aWNhdGlvbiBnZXQgYXBwIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICB0aGlzLmxvZ2luVG9CYWNrb2ZmaWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgIHRoaXMuc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKE9wZW5JZEF1dGhldGljYXRlQWN0aW9uKVxuICBwdWJsaWMgb25PcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCBhY3Rpb246IE9wZW5JZEF1dGhldGljYXRlQWN0aW9uKSB7XG4gICAgbGV0IGF1dGhlbnRpY2F0ZU9pZGMkOiBPYnNlcnZhYmxlPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YT47XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvID0gbmV3IEF1dGhlbnRpY2F0ZVdlYlNzb1JlcXVlc3REdG8oKTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLmNvZGUgPSBhY3Rpb24udG9rZW47XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by50ZW5hbnROYW1lID0gYWN0aW9uLnRlbmFudEluZm8/LnRlbmFudE5hbWU7XG4gICAgY29uc3QgY29uZmxpY3REZXRlY3RlZCA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLmlzQ29uZmxpY3REZXRlY3RlZClcbiAgICBpZiAoY29uZmxpY3REZXRlY3RlZCA9PSBudWxsKSB7XG4gICAgYXV0aGVudGljYXRlT2lkYyQgPSB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkub3BlbklkQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pO1xuXG4gICAgcmV0dXJuIGF1dGhlbnRpY2F0ZU9pZGMkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6IGF1dGhSZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChhdXRoUmVzcG9uc2UuZGF0YS5tZXNzYWdlID09PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmluZm8obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICBhY3Rpb24uaXNQZW5kaW5nQXBwcm92YWwgPSB0cnVlO1xuICAgICAgICAgIC8vdGhpcy5jbGVhclNpbmdsZVNpbmdPbkNhY2hlKHNpbmdsZVNpZ25PblByb3ZpZGVyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzcGFya1Nlc3Npb24gPSB0aGlzLmF1dGhTZXJ2aWNlLnByb2Nlc3NBdXRoZW50aWNhdGUoYXV0aFJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBjdHguZGlzcGF0Y2gobmV3IFNldFRlbmFudFVzZXJBY3Rpb24oc3BhcmtTZXNzaW9uKSk7XG4gICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLnVzZXJTdGF0dXNJc0F3YWl0aW5nQWNjZXNzKGF1dGhSZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShhY3Rpb24uc2luZ2xlU2lnbk9uUHJvdmlkZXIpO1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLndhcm4obWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICAgICAgICAgIGFjdGlvbi5pc1BlbmRpbmdBcHByb3ZhbCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gQWZ0ZXIgYXV0aGVudGljYXRpb24gZ2V0IGFwcCBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICB0aGlzLmxvZ2luVG9TcGFyaygpO1xuICAgICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgICB0aGlzLnNpbmdsZVNpbmdPbkVycm9ySGFuZGxpbmcoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBzaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGU6IGFueSkge1xuICAgIGlmIChlLmVycm9yTWVzc2FnZSA9PSBMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGUuZXJyb3JNZXNzYWdlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZS5lcnJvck1lc3NhZ2UpO1xuICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ2luVG9TcGFyaygpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbigpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBIZWFsdGhBY3Rpb24oKSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UudXBkYXRlTG9nZ2VkVGVuYW50KCk7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5Ub1NwYXJrKCk7XG4gIH1cblxuICBsb2dpblRvQmFja29mZmljZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBMb2FkQmFja29mZmljZUFwcENvbmZpZ3VyYXRpb25BY3Rpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSGVhbHRoQWN0aW9uKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFRlbmFudCgpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luVG9TcGFyaygpO1xuICB9XG59XG4iXX0=
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvbG9naW4vbG9naW4uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsTUFBTSxhQUFhLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFDZ0MsZUFBZSxFQUNILFVBQVUsRUFBRSxxQkFBcUIsRUFDbkYsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsbUNBQW1DLEVBQWdDLHNCQUFzQixFQUNoRCw0QkFBNEIsRUFDckUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQ3hDLDJCQUEyQixFQUM1QixNQUFNLDhDQUE4QyxDQUFDO0FBS3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsb0NBQW9DLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNy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LENBQUMsaUNBQWlDLENBQUM7cUVBd0J6QztBQUdNO0lBRE4sTUFBTSxDQUFDLGlCQUFpQixDQUFDO3FEQUt6QjtBQW9DTTtJQUROLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQzsrREErQm5DO0FBR007SUFETixNQUFNLENBQUMsdUJBQXVCLENBQUM7MkRBd0MvQjtBQXBUYTtJQURiLFFBQVEsRUFBRTs2Q0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2tDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7Z0NBR1Y7QUFHYTtJQURiLFFBQVEsRUFBRTtvQ0FHVjtBQUdhO0lBRGIsUUFBUSxFQUFFO2dDQUdWO0FBR2E7SUFEYixRQUFRLEVBQUU7bUNBR1Y7QUF6Q1UsVUFBVTtJQVh0QixLQUFLLENBQWtCO1FBQ3RCLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFO1lBQ1IsUUFBUSxFQUFFLFNBQVM7WUFDbkIsVUFBVSxFQUFFLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUsU0FBUztTQUNwQjtLQUNGLENBQUM7R0FDVyxVQUFVLENBK1Z0Qjs7NEZBL1ZZLFVBQVU7a0JBWnRCLFVBQVU7dWRBd0RGLG1DQUFtQyxNQWlCbkMsZ0JBQWdCLE1BbUJoQiwwQkFBMEIsTUFPMUIsOEJBQThCLE1BUTlCLCtCQUErQixNQVMvQiwwQkFBMEIsTUF3QzFCLHlCQUF5QixNQXdDekIsbUNBQW1DLE1BMEJuQyxtQkFBbUIsTUF3Q25CLDZCQUE2QixNQWlDN0IseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IENsZWFyQ2FjaGVSZXF1ZXN0IH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0ZSB9IGZyb20gJ0BuZ3hzL3JvdXRlci1wbHVnaW4nO1xuaW1wb3J0IHsgQWN0aW9uLCBTZWxlY3RvciwgU3RhdGUsIFN0YXRlQ29udGV4dCwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZUJhclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci1wb3NpdGlvbi5lbnVtJztcbmltcG9ydCB7IE1lc3NhZ2VCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9tZXNzYWdlLWJhci9tZXNzYWdlLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFJFU0VUX1BBU1NXT1JEX0VNQUlMIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2tleXMtY29uc3RhbnRzJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcbmltcG9ydCB7IExvY2FsaXphdGlvbiB9IGZyb20gJy4uLy4uL2VudW1zL2xvY2FsaXphdGlvbi5lbnVtJztcbmltcG9ydCB7XG4gIEFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLCBBY3RpdmF0ZVVzZXJEdG8sIEFwaUV4Y2VwdGlvbiwgUHJvYmxlbURldGFpbHMsIFRmYVNldHVwRHRvLFxuICBVc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSwgVXNlcnNDbG91ZFNlcnZpY2VQcm94eSwgVXNlclN0YXR1cywgVXNlclVwZGF0ZVBhc3N3b3JkRHRvXG59IGZyb20gJy4uLy4uL3NlcnZpY2UtcHJveHkvY2xvdWQtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7XG4gIEF1dGhlbnRpY2F0ZUJhY2tvZmZpY2VTc29SZXF1ZXN0RHRvLCBBdXRoZW50aWNhdGVFcnJvclJlc3BvbnNlRHRvLCBBdXRoZW50aWNhdGVSZXF1ZXN0RHRvLCBBdXRoZW50aWNhdGVSZXNwb25zZUR0byxcbiAgQXV0aGVudGljYXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLCBBdXRoZW50aWNhdGVXZWJTc29SZXF1ZXN0RHRvLCBCYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LFxuICBQYXNzd29yZENoYW5nZVR5cGUsIFNpbmdsZVNpZ25PblByb3ZpZGVyLCBVc2Vyc0lkZW50aXR5U2VydmljZVByb3h5LCBWYWxpZGF0ZUFjdGl2YXRpb25Vc2VyRHRvSHR0cFJlc3BvbnNlRGF0YSxcbiAgVmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvLCBWZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldER0b0h0dHBSZXNwb25zZURhdGFcbn0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9pZGVudGl0eS1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVuSWRBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wZW5pZC1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcm91dGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJzZUFwaUVycm9yRGF0YSwgcGFyc2VBcGlFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscy9hcGktaGVscGVyLnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nTWFwIH0gZnJvbSAnLi4vLi4vdXRpbHMvbGFuZy51dGlsJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi9hdXRoL21vZGVsL3VzZXItaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSGVhbHRoQWN0aW9uLCBMb2FkQXBwQ29uZmlndXJhdGlvbkFjdGlvbiwgTG9hZEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uLCBTZXRUZW5hbnRVc2VyQWN0aW9uLCBVcGRhdGVBdXRoVG9rZW5BY3Rpb24gfSBmcm9tICcuLi9hdXRoL3Nlc3Npb24uYWN0aW9ucyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RhdGUgfSBmcm9tICcuLi9hdXRoL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHtcbiAgQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uLCBBY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbiwgQWNjb3VudFNldFBhc3N3b3JkSW5pdEFjdGlvbiwgQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uLFxuICBCYWNrb2ZmaWNlQXV0aGV0aWNhdGVBY3Rpb24sIEZvcmdvdFBhc3N3b3JkQWN0aW9uLCBGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3NBY3Rpb24sXG4gIE9wZW5JZEF1dGhldGljYXRlQWN0aW9uLCBTZXRURkFTZXR1cEFjdGlvbiwgVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24sIFZlcmlmeTJGYWN0b3JBdXRoZW50aWNhdGlvbkFjdGlvblxufSBmcm9tICcuL2xvZ2luLmFjdGlvbnMnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblN0YXRlTW9kZWwge1xuICB1c2VySW5mbzogVXNlckluZm87XG4gIHRlbmFudE5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmRDaGFuZ2VUeXBlOiBQYXNzd29yZENoYW5nZVR5cGU7XG4gIGFjY291bnRzOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0b1tdO1xuICBhY2NvdW50c01hcDogU3RyaW5nTWFwPEF1dGhlbnRpY2F0ZVJlc3BvbnNlRHRvPjtcbiAgdGZhU2V0dXA6IFRmYVNldHVwRHRvO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5AU3RhdGU8TG9naW5TdGF0ZU1vZGVsPih7XG4gIG5hbWU6ICdsb2dpbicsXG4gIGRlZmF1bHRzOiB7XG4gICAgdXNlckluZm86IHVuZGVmaW5lZCxcbiAgICB0ZW5hbnROYW1lOiAnJyxcbiAgICBwYXNzd29yZENoYW5nZVR5cGU6IHVuZGVmaW5lZCxcbiAgICBhY2NvdW50czogW10sXG4gICAgYWNjb3VudHNNYXA6IHt9LFxuICAgIHRmYVNldHVwOiB1bmRlZmluZWQsXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5TdGF0ZSB7XG5cbiAgcHJpdmF0ZSBtZXNzYWdlT3B0aW9ucyA9IHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHVzZXJzQ2xvdWRTZXJ2aWNlUHJveHk6IFVzZXJzQ2xvdWRTZXJ2aWNlUHJveHksXG4gICAgcHJpdmF0ZSBiYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5OiBCYWNrb2ZmaWNlVXNlcklkZW50aXR5U2VydmljZVByb3h5LCBwcml2YXRlIG9wZW5JZEF1dGhTZXJ2aWNlOiBPcGVuSWRBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHk6IFVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHksIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1zYWxTZXJ2aWNlOiBNc2FsU2VydmljZSwgcHJpdmF0ZSBtZXNzYWdlQmFyU2VydmljZTogTWVzc2FnZUJhclNlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVTZXJ2aWNlOiBSb3V0ZVNlcnZpY2UpIHtcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdHdvRmFjdG9yU2V0dXBGb3JVc2VyKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBUZmFTZXR1cER0byB7XG4gICAgcmV0dXJuIHN0YXRlLnRmYVNldHVwO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB0ZW5hbnROYW1lKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZS50ZW5hbnROYW1lO1xuICB9XG5cbiAgQFNlbGVjdG9yKClcbiAgcHVibGljIHN0YXRpYyB1c2VySW5mbyhzdGF0ZTogTG9naW5TdGF0ZU1vZGVsKTogVXNlckluZm8ge1xuICAgIHJldHVybiBzdGF0ZS51c2VySW5mbztcbiAgfVxuXG4gIEBTZWxlY3RvcigpXG4gIHB1YmxpYyBzdGF0aWMgdGVtcGxhdGVUeXBlKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBQYXNzd29yZENoYW5nZVR5cGUge1xuICAgIHJldHVybiBzdGF0ZS5wYXNzd29yZENoYW5nZVR5cGU7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGFjY291bnRzKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0b1tdIHtcbiAgICByZXR1cm4gc3RhdGUuYWNjb3VudHM7XG4gIH1cblxuICBAU2VsZWN0b3IoKVxuICBwdWJsaWMgc3RhdGljIGFjY291bnRzTWFwKHN0YXRlOiBMb2dpblN0YXRlTW9kZWwpOiBTdHJpbmdNYXA8QXV0aGVudGljYXRlUmVzcG9uc2VEdG8+IHtcbiAgICByZXR1cm4gc3RhdGUuYWNjb3VudHNNYXA7XG4gIH1cblxuICBAQWN0aW9uKEF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbilcbiAgcHVibGljIG9uQXV0aGVudGljYXRlTXVsdGlwbGVUZW5hbnRzQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdXNlcm5hbWUsIHBhc3N3b3JkIH06IEF1dGhlbnRpY2F0ZU11bHRpcGxlVGVuYW50c0FjdGlvbikge1xuICAgIGNvbnN0IGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8gPSBuZXcgQXV0aGVudGljYXRlUmVxdWVzdER0bygpO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgICBhdXRoZW50aWNhdGVSZXF1ZXN0RHRvLnBhc3N3b3JkID0gcGFzc3dvcmQ7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by50ZW5hbnROYW1lID0gJyc7XG4gICAgcmV0dXJuIHRoaXMudXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eS5tdWx0aVRlbmFudHNBdXRoZW50aWNhdGUoYXV0aGVudGljYXRlUmVxdWVzdER0bykucGlwZSh0YXAoe1xuICAgICAgbmV4dDogYWNjb3VudHNIdHRwUmVzcG9uc2VEYXRhID0+IHtcbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhY2NvdW50c0h0dHBSZXNwb25zZURhdGEuZGF0YTtcbiAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgIGFjY291bnRzXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHRoaXMuYXV0aGVudGljYXRpb25FcnJvck1lc3NhZ2VCYXIoZSlcbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKEZvcmdvdFBhc3N3b3JkQWN0aW9uKVxuICBwdWJsaWMgb25Gb3Jnb3RQYXNzd29yZChjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVtYWlsLCB0ZW5hbnRJZCB9OiBGb3Jnb3RQYXNzd29yZEFjdGlvbikge1xuICAgIGNvbnN0IGlzTW9iaWxlQXBwTW9kZSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZygpLmFwcFR5cGUgPT09IEFwcFR5cGUuTW9iaWxlO1xuICAgIGNvbnN0IHBhdGggPSBbJ2FjY291bnQnLCAnZm9yZ290LXBhc3N3b3JkLXN1Y2Nlc3MnXTtcbiAgICBjb25zdCB1cmwgPSBpc01vYmlsZUFwcE1vZGUgPyBwYXRoIDogdGhpcy5yb3V0ZVNlcnZpY2UuZ2V0TmF2aWdhdGlvblJvdXRlKHBhdGgpO1xuXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShSRVNFVF9QQVNTV09SRF9FTUFJTCwgSlNPTi5zdHJpbmdpZnkoZW1haWwpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBOYXZpZ2F0ZSh1cmwpKTtcbiAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLnN1Y2Nlc3MoTG9jYWxpemF0aW9uLmZvcmdvdF9wYXNzd29yZF9lbWFpbF9zZW50X21zZywgdGhpcy5tZXNzYWdlT3B0aW9ucyk7XG5cbiAgICAvLyBQcmUtYXV0aGVudGljYXRpb24gdGhlIHRlbmFudCBpZCBpcyB1bmtub3duOiBUZW5hbnREZXRhaWxzRHRvIGNhcnJpZXMgbm8gaWQsIHNvIHRoZSB0ZW5hbnRcbiAgICAvLyByZXNvbHZlciBsZWF2ZXMgdGVuYW50SW5mby5pZCBudWxsLiBQYXNzaW5nIG51bGwgdG8gZm9yZ290UGFzc3dvcmQgdGhyb3dzIHN5bmNocm9ub3VzbHlcbiAgICAvLyAoXCJUaGUgcGFyYW1ldGVyICd0ZW5hbnRJZCcgY2Fubm90IGJlIG51bGwuXCIpLiBGYWxsIGJhY2sgdG8gdGhlIHRlbmFudGxlc3MgZW5kcG9pbnQsIHdoaWNoXG4gICAgLy8gcmVzb2x2ZXMgdGhlIHRlbmFudCBzZXJ2ZXItc2lkZSBmcm9tIHRoZSBlbWFpbCBhZGRyZXNzLlxuICAgIHJldHVybiB0ZW5hbnRJZCAhPSBudWxsXG4gICAgICA/IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5mb3Jnb3RQYXNzd29yZChlbWFpbCwgdGVuYW50SWQpXG4gICAgICA6IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5mb3Jnb3RQYXNzd29yZFRlbmFudGxlc3MoZW1haWwpO1xuICB9XG5cbiAgQEFjdGlvbihGb3Jnb3RQYXNzd29yZFRlbmFudGxlc3NBY3Rpb24pXG4gIHB1YmxpYyBvbkZvcmdvdFBhc3N3b3JkVGVuYW50bGVzcyhjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVtYWlsIH06IEZvcmdvdFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5zdWNjZXNzKExvY2FsaXphdGlvbi5mb3Jnb3RfcGFzc3dvcmRfZW1haWxfc2VudF9tc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLnVzZXJzQ2xvdWRTZXJ2aWNlUHJveHkuZm9yZ290UGFzc3dvcmRUZW5hbnRsZXNzKGVtYWlsKTtcbiAgfVxuXG5cbiAgQEFjdGlvbihBY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRJbml0QWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdXNlckluZm8sIGNvbXBvbmVudFR5cGUgfSkge1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHVzZXJJbmZvLFxuICAgICAgcGFzc3dvcmRDaGFuZ2VUeXBlOiBjb21wb25lbnRUeXBlXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEVycm9yQWN0aW9uKVxuICBwdWJsaWMgb25BY2NvdW50U2V0UGFzc3dvcmRFcnJvckFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IGVycm9yTXNnLCB1c2VybmFtZSB9KSB7XG4gICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0geyAuLi51c2VybmFtZSB9O1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoZXJyb3JNc2csIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgIGN0eC5wYXRjaFN0YXRlKHtcbiAgICAgIHVzZXJJbmZvXG4gICAgfSk7XG4gIH1cblxuICBAQWN0aW9uKEFjY291bnRTZXRQYXNzd29yZEFjdGlvbilcbiAgcHVibGljIG9uQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgcGFzc3dvcmQgfTogQWNjb3VudFNldFBhc3N3b3JkQWN0aW9uKSB7XG4gICAgY29uc3QgdXNlckluZm8gPSBjdHguZ2V0U3RhdGUoKS51c2VySW5mbztcbiAgICBsZXQgZGF0YTogYW55O1xuICAgIGxldCBzZXRQYXNzd29yZCQ6IE9ic2VydmFibGU8VXNlckR0b0h0dHBSZXNwb25zZURhdGEgfCBBY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YT47XG5cbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0Q29uZmlnKCkuYXBwVHlwZSA9PT0gQXBwVHlwZS5DbG91ZCkge1xuICAgICAgZGF0YSA9IG5ldyBBY3RpdmF0ZVVzZXJEdG8oe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgY3VycmVudFBhc3N3b3JkOiBudWxsLFxuICAgICAgICB1c2VyU3RhdHVzOiB1c2VySW5mby5zdGF0dXMgYXMgVXNlclN0YXR1c1xuICAgICAgfSk7XG5cbiAgICAgIHNldFBhc3N3b3JkJCA9IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS5hY3RpdmF0ZShkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YSA9IG5ldyBVc2VyVXBkYXRlUGFzc3dvcmREdG8oe1xuICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgY3VycmVudFBhc3N3b3JkOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHNldFBhc3N3b3JkJCA9IHRoaXMudXNlcnNDbG91ZFNlcnZpY2VQcm94eS51cGRhdGVVc2VyUGFzc3dvcmQoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFBhc3N3b3JkJC5waXBlKFxuICAgICAgbWFwKChhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YTogQWN0aXZhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGEuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgdGZhU2V0dXA6IGFjdGl2YXRlUmVzcG9uc2VEdG9IdHRwUmVzcG9uc2VEYXRhLmRhdGE/LnRmYVNldHVwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihhY3RpdmF0ZVJlc3BvbnNlRHRvSHR0cFJlc3BvbnNlRGF0YS5kYXRhLmVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5lcnJvcihlcnJvck1lc3NhZ2UsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvck1lc3NhZ2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQEFjdGlvbihWYWxpZGF0ZVVzZXJUb2tlbkFjdGlvbilcbiAgcHVibGljIG9uVmFsaWRhdGVVc2VyVG9rZW5BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB0b2tlbiwgdG9rZW5UeXBlIH06IFZhbGlkYXRlVXNlclRva2VuQWN0aW9uKSB7XG4gICAgY29uc3QgcGN0OiBhbnkgPSBQYXNzd29yZENoYW5nZVR5cGVbdG9rZW5UeXBlXTtcbiAgICByZXR1cm4gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5LnZhbGlkYXRlQWN0aXZhdGlvbih0b2tlbiwgUGFzc3dvcmRDaGFuZ2VUeXBlW1Bhc3N3b3JkQ2hhbmdlVHlwZVt0b2tlblR5cGVdXSkucGlwZSh0YXAoe1xuICAgICAgbmV4dDogKHVzZXI6IFZhbGlkYXRlQWN0aXZhdGlvblVzZXJEdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmICh1c2VyPy5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdXNlckluZm86IFVzZXJJbmZvID0ge1xuICAgICAgICAgICAgdXNlcklkOiB1c2VyLmRhdGEuaWQsXG4gICAgICAgICAgICB1c2VybmFtZTogdXNlci5kYXRhLnVOYW1lLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke3VzZXIuZGF0YS5uYW1lfSAke3VzZXIuZGF0YS5sYXN0TmFtZX1gLFxuICAgICAgICAgICAgc3RhdHVzOiB1c2VyLmRhdGEuc3RhdHVzLFxuICAgICAgICAgICAgcG1sOiB1c2VyLmRhdGEucG1sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAodXNlci5kYXRhLnN0YXR1cyAhPT0gVXNlclN0YXR1cy5CbG9ja2VkKSB7XG4gICAgICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICAgIHVzZXJJbmZvLFxuICAgICAgICAgICAgICBwYXNzd29yZENoYW5nZVR5cGU6IHBjdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKExvY2FsaXphdGlvbi5ub25fYWN0aXZlX3VzZXIsIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICAgICAgY3R4LnBhdGNoU3RhdGUoe1xuICAgICAgICAgICAgICB1c2VySW5mbyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVycm9yOiBlID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JKc29uOiBQcm9ibGVtRGV0YWlscyA9IEpTT04ucGFyc2UoZS5yZXNwb25zZSkgYXMgUHJvYmxlbURldGFpbHM7XG4gICAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IocGFyc2VBcGlFcnJvck1lc3NhZ2UoZSksIHRoaXMubWVzc2FnZU9wdGlvbnMpO1xuICAgICAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgdXNlckluZm86IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiBlcnJvckpzb24uaW5zdGFuY2UsXG4gICAgICAgICAgICB1c2VySWQ6IG51bGwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbnVsbFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIEBBY3Rpb24oVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKVxuICBwdWJsaWMgb25WZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb25BY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgeyB1c2VyTmFtZSwgY29kZSwgc2V0dXAyRmEgfTogVmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uQWN0aW9uKSB7XG4gICAgY29uc3QgdmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvID0gbmV3IFZlcmlmeTJGYWN0b3JBdXRoUmVxdWVzdER0byh7XG4gICAgICBjb2RlLFxuICAgICAgdXNlck5hbWVcbiAgICB9KTtcblxuICAgIGxldCB2ZXJpZnkyRmFjdG9yQXV0aCQ6IE9ic2VydmFibGU8VmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhPjtcbiAgICBpZiAoc2V0dXAyRmEpIHtcbiAgICAgIHZlcmlmeTJGYWN0b3JBdXRoJCA9IHRoaXMudXNlcnNJZGVudGl0eVNlcnZpY2VQcm94eS52ZXJpZnkyRmFjdG9yQXV0aGVudGljYXRpb24odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9IGVsc2UgeyAvLyBsb2dpbiBmb3IgdXNlciB3aXRoIDJGQSAoYWxyZWFkeSBzZXQgdXApXG4gICAgICB2ZXJpZnkyRmFjdG9yQXV0aCQgPSB0aGlzLnVzZXJzSWRlbnRpdHlTZXJ2aWNlUHJveHkudmVyaWZ5MkZhY3RvckF1dGhlbnRpY2F0aW9uTG9naW4odmVyaWZ5MkZhY3RvckF1dGhSZXF1ZXN0RHRvKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZ5MkZhY3RvckF1dGgkLnBpcGUodGFwKHtcbiAgICAgIG5leHQ6ICh2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldDogVmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXREdG9IdHRwUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5hY2Nlc3NUb2tlbjtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVmcmVzaFRva2VuID0gdmVyaWZ5MkZhY3RvckF1dGhSZXNwb25zZXQuZGF0YS5yZWZyZXNoVG9rZW47XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUF1dGhUb2tlbkFjdGlvbih2ZXJpZnkyRmFjdG9yQXV0aFJlc3BvbnNldC5kYXRhLmFjY2Vzc1Rva2VuLHZlcmlmeTJGYWN0b3JBdXRoUmVzcG9uc2V0LmRhdGEucmVmcmVzaFRva2VuKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBAQWN0aW9uKFNldFRGQVNldHVwQWN0aW9uKVxuICBwdWJsaWMgb25TZXRURkFTZXR1cEFjdGlvbihjdHg6IFN0YXRlQ29udGV4dDxMb2dpblN0YXRlTW9kZWw+LCB7IHRmYVNldHVwRHRvIH0pIHtcbiAgICBjdHgucGF0Y2hTdGF0ZSh7XG4gICAgICB0ZmFTZXR1cDogdGZhU2V0dXBEdG9cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0aGVudGljYXRpb25FcnJvck1lc3NhZ2VCYXIoZXJyb3I6IEFwaUV4Y2VwdGlvbikge1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHBhcnNlQXBpRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICBjb25zdCBkYXRhID0gcGFyc2VBcGlFcnJvckRhdGE8QXV0aGVudGljYXRlRXJyb3JSZXNwb25zZUR0bz4oZXJyb3IpO1xuICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IoZXJyb3JNZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljLCBtZXNzYWdlUGFyYW1zOiB7IHRlbXBvcmFyeUxvY2tlZE1pbnV0ZXM6IGRhdGE/LnRlbXBvcmFyeUJsb2NrZWRUaW1lIH0gfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTXNsTG9naW5DYWNoZSgpIHtcbiAgICBjb25zdCBjbGVhckNhY2hlUmVxdWVzdDogQ2xlYXJDYWNoZVJlcXVlc3QgPSB7XG4gICAgICBhY2NvdW50OiB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKClbMF0sXG4gICAgfTtcbiAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmNsZWFyQ2FjaGUoY2xlYXJDYWNoZVJlcXVlc3QpO1xuICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0KCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoc2luZ2xlU2lnbk9uUHJvdmlkZXI6IFNpbmdsZVNpZ25PblByb3ZpZGVyKSB7XG4gICAgc3dpdGNoIChzaW5nbGVTaWduT25Qcm92aWRlcikge1xuICAgICAgY2FzZSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQ6XG4gICAgICAgIHRoaXMuY2xlYXJNc2xMb2dpbkNhY2hlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNpbmdsZVNpZ25PblByb3ZpZGVyLlBpbmdGZWRlcmF0ZTpcbiAgICAgICAgdGhpcy5vcGVuSWRBdXRoU2VydmljZS5zaWduT3V0KCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXNlclN0YXR1c0lzQXdhaXRpbmdBY2Nlc3MgPSAoYXV0aFJlc3BvbnNlOiBBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGEpOiBib29sZWFuID0+XG4gICAgYXV0aFJlc3BvbnNlLmRhdGEuc2luZ2xlU2lnbk9uQXV0aGVudGljYXRpb25EdG8/LmlzQXV0aGVudGljYXRlZCA9PT0gZmFsc2UgJiZcbiAgICBhdXRoUmVzcG9uc2UuZGF0YS5zaW5nbGVTaWduT25BdXRoZW50aWNhdGlvbkR0bz8udXNlclN0YXR1cyA9PT0gVXNlclN0YXR1cy5Bd2FpdGluZ0FjY2VzcztcblxuICBAQWN0aW9uKEJhY2tvZmZpY2VBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKGN0eDogU3RhdGVDb250ZXh0PExvZ2luU3RhdGVNb2RlbD4sIHsgdG9rZW4sIHRlbmFudEluZm8gfTogQmFja29mZmljZUF1dGhldGljYXRlQWN0aW9uKSB7XG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVCYWNrb2ZmaWNlU3NvUmVxdWVzdER0bygpO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8uY29kZSA9IHRva2VuO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IHRlbmFudEluZm8/LnRlbmFudE5hbWU7XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGVPaWRjJCA9IHRoaXMuYmFja29mZmljZVVzZXJJZGVudGl0eVNlcnZpY2VQcm94eS5iYWNrb2ZmaWNlQXV0aGVudGljYXRlKGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8pO1xuICAgIHJldHVybiBhdXRoZW50aWNhdGVPaWRjJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhdXRoUmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoYXV0aFJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuICAgICAgICBpZiAodGhpcy51c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyhhdXRoUmVzcG9uc2UpKSB7XG4gICAgICAgICAgdGhpcy5jbGVhclNpbmdsZVNpbmdPbkNhY2hlKFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCk7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgLy8gQWZ0ZXIgYXV0aGVudGljYXRpb24gZ2V0IGFwcCBjb25maWd1cmF0aW9uXG4gICAgICAgICAgdGhpcy5sb2dpblRvQmFja29mZmljZSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGUgPT4ge1xuICAgICAgICB0aGlzLnNpbmdsZVNpbmdPbkVycm9ySGFuZGxpbmcoZSk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgQEFjdGlvbihPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbilcbiAgcHVibGljIG9uT3BlbklkQXV0aGV0aWNhdGVBY3Rpb24oY3R4OiBTdGF0ZUNvbnRleHQ8TG9naW5TdGF0ZU1vZGVsPiwgYWN0aW9uOiBPcGVuSWRBdXRoZXRpY2F0ZUFjdGlvbikge1xuICAgIGxldCBhdXRoZW50aWNhdGVPaWRjJDogT2JzZXJ2YWJsZTxBdXRoZW50aWNhdGVSZXNwb25zZUR0b0h0dHBSZXNwb25zZURhdGE+O1xuXG4gICAgY29uc3QgYXV0aGVudGljYXRlUmVxdWVzdER0byA9IG5ldyBBdXRoZW50aWNhdGVXZWJTc29SZXF1ZXN0RHRvKCk7XG4gICAgYXV0aGVudGljYXRlUmVxdWVzdER0by5jb2RlID0gYWN0aW9uLnRva2VuO1xuICAgIGF1dGhlbnRpY2F0ZVJlcXVlc3REdG8udGVuYW50TmFtZSA9IGFjdGlvbi50ZW5hbnRJbmZvPy50ZW5hbnROYW1lO1xuICAgIGNvbnN0IGNvbmZsaWN0RGV0ZWN0ZWQgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFNlc3Npb25TdGF0ZS5pc0NvbmZsaWN0RGV0ZWN0ZWQpXG4gICAgaWYgKGNvbmZsaWN0RGV0ZWN0ZWQgPT0gbnVsbCkge1xuICAgIGF1dGhlbnRpY2F0ZU9pZGMkID0gdGhpcy51c2Vyc0lkZW50aXR5U2VydmljZVByb3h5Lm9wZW5JZEF1dGhlbnRpY2F0ZShhdXRoZW50aWNhdGVSZXF1ZXN0RHRvKTtcblxuICAgIHJldHVybiBhdXRoZW50aWNhdGVPaWRjJC5waXBlKHRhcCh7XG4gICAgICBuZXh0OiBhdXRoUmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoYXV0aFJlc3BvbnNlLmRhdGEubWVzc2FnZSA9PT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KExvY2FsaXphdGlvbi5zc29fcGVuZGluZ19hcHByb3ZhbCk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS5pbmZvKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgYWN0aW9uLmlzUGVuZGluZ0FwcHJvdmFsID0gdHJ1ZTtcbiAgICAgICAgICAvL3RoaXMuY2xlYXJTaW5nbGVTaW5nT25DYWNoZShzaW5nbGVTaWduT25Qcm92aWRlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BhcmtTZXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5wcm9jZXNzQXV0aGVudGljYXRlKGF1dGhSZXNwb25zZS5kYXRhKTtcbiAgICAgICAgY3R4LmRpc3BhdGNoKG5ldyBTZXRUZW5hbnRVc2VyQWN0aW9uKHNwYXJrU2Vzc2lvbikpO1xuICAgICAgICBcbiAgICAgICAgICBpZiAodGhpcy51c2VyU3RhdHVzSXNBd2FpdGluZ0FjY2VzcyhhdXRoUmVzcG9uc2UpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2luZ2xlU2luZ09uQ2FjaGUoYWN0aW9uLnNpbmdsZVNpZ25PblByb3ZpZGVyKTtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChMb2NhbGl6YXRpb24uc3NvX3BlbmRpbmdfYXBwcm92YWwpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlQmFyU2VydmljZS53YXJuKG1lc3NhZ2UsIHsgcG9zaXRpb246IE1lc3NhZ2VCYXJQb3NpdGlvbi5TdGF0aWMgfSk7XG4gICAgICAgICAgICBhY3Rpb24uaXNQZW5kaW5nQXBwcm92YWwgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFmdGVyIGF1dGhlbnRpY2F0aW9uIGdldCBhcHAgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgdGhpcy5sb2dpblRvU3BhcmsoKTtcbiAgICAgICAgICB9XG4gICAgICB9LFxuICAgICAgICBlcnJvcjogZSA9PiB7XG4gICAgICAgICAgdGhpcy5zaW5nbGVTaW5nT25FcnJvckhhbmRsaW5nKGUpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgc2luZ2xlU2luZ09uRXJyb3JIYW5kbGluZyhlOiBhbnkpIHtcbiAgICBpZiAoZS5lcnJvck1lc3NhZ2UgPT0gTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoTG9jYWxpemF0aW9uLnNzb19wZW5kaW5nX2FwcHJvdmFsKTtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuaW5mbyhtZXNzYWdlLCB7IHBvc2l0aW9uOiBNZXNzYWdlQmFyUG9zaXRpb24uU3RhdGljIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChlLmVycm9yTWVzc2FnZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGUuZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRoaXMubWVzc2FnZUJhclNlcnZpY2UuZXJyb3IobWVzc2FnZSwgeyBwb3NpdGlvbjogTWVzc2FnZUJhclBvc2l0aW9uLlN0YXRpYyB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2VCYXJTZXJ2aWNlLmVycm9yKHBhcnNlQXBpRXJyb3JNZXNzYWdlKGUpLCB0aGlzLm1lc3NhZ2VPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBsb2dpblRvU3BhcmsoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEFwcENvbmZpZ3VyYXRpb25BY3Rpb24oKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgSGVhbHRoQWN0aW9uKCkpO1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFRlbmFudCgpO1xuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ2luVG9TcGFyaygpO1xuICB9XG5cbiAgbG9naW5Ub0JhY2tvZmZpY2UoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEJhY2tvZmZpY2VBcHBDb25maWd1cmF0aW9uQWN0aW9uKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEhlYWx0aEFjdGlvbigpKTtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS51cGRhdGVMb2dnZWRUZW5hbnQoKTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpblRvU3BhcmsoKTtcbiAgfVxufVxuIl19
|
|
@@ -157,6 +157,12 @@ export class ClearLprTransactionsExpanded {
|
|
|
157
157
|
constructor() {
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
+
export class SelectLprTransactionsRowAction {
|
|
161
|
+
static { this.type = '[park-manager] SelectLprTransactionsRow'; }
|
|
162
|
+
constructor(value) {
|
|
163
|
+
this.value = value;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
160
166
|
export class SelectedRowAction {
|
|
161
167
|
static { this.type = '[park-manager] SelectedRow'; }
|
|
162
168
|
constructor(payload) {
|
|
@@ -239,4 +245,4 @@ export class DeviceStatusChangedAction {
|
|
|
239
245
|
this.deviceStatus = deviceStatus;
|
|
240
246
|
}
|
|
241
247
|
}
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsTUFBTSxPQUFPLHVCQUF1QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFMUQsWUFBbUIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDNUMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ2IsU0FBSSxHQUFHLDZCQUE2QixDQUFDO0lBRXJELFlBQW1CLFFBQVE7UUFBUixhQUFRLEdBQVIsUUFBUSxDQUFBO0lBQzNCLENBQUM7O0FBSUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLEFBQTlCLENBQStCO0lBRW5ELFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDbkMsQ0FBQzs7QUFKVSxnQkFBZ0I7SUFENUIsV0FBVyxFQUFFO0dBQ0QsZ0JBQWdCLENBSzVCOztBQUdNLElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7SUFFM0Q7SUFDQSxDQUFDOztBQUpVLHdCQUF3QjtJQURwQyxXQUFXLEVBQUU7R0FDRCx3QkFBd0IsQ0FLcEM7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUVwRDtJQUNBLENBQUM7O0FBSUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7YUFDWixTQUFJLEdBQUcsNEJBQTRCLEFBQS9CLENBQWdDO0lBRXBELFlBQW1CLE1BQWMsRUFBUyxJQUFZLEVBQVMsZUFBaUMsRUFBUyxTQUFrQixJQUFJO1FBQTVHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFDL0gsQ0FBQzs7QUFKVSxpQkFBaUI7SUFEN0IsV0FBVyxFQUFFO0dBQ0QsaUJBQWlCLENBSzdCOztBQUVELE1BQU0sT0FBTyx1QkFBdUI7YUFDWCxTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFakUsWUFBbUIsTUFBYyxFQUFTLElBQVksRUFBUyxlQUFnQyxFQUFTLFdBQXlCO1FBQTlHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFDakksQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ2IsU0FBSSxHQUFHLDZCQUE2QixDQUFDO0lBRXJEO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyxtQ0FBbUMsQ0FBQztJQUUzRCxZQUFtQixRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUNoQyxDQUFDOztBQUdILE1BQU0sT0FBTywyQkFBMkI7YUFDdEIsU0FBSSxHQUFHLHNDQUFzQyxDQUFDO0lBRTlELFlBQW1CLGFBQWtCO1FBQWxCLGtCQUFhLEdBQWIsYUFBYSxDQUFLO0lBQ3JDLENBQUM7O0FBR0gsTUFBTSxPQUFPLDRCQUE0QjthQUN2QixTQUFJLEdBQUcsNkNBQTZDLENBQUM7SUFFckUsWUFBbUIsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO0lBQ3BELENBQUM7O0FBSUksSUFBTSx3QkFBd0IsR0FBOUIsTUFBTSx3QkFBd0I7YUFDbkIsU0FBSSxHQUFHLHlDQUF5QyxBQUE1QyxDQUE2QztJQUVqRSxZQUFtQixNQUFjLEVBQVMsUUFBZ0IsRUFBUyxJQUFZLEVBQVMsV0FBbUI7UUFBeEYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFDM0csQ0FBQzs7QUFKVSx3QkFBd0I7SUFEcEMsV0FBVyxFQUFFO0dBQ0Qsd0JBQXdCLENBS3BDOztBQUdNLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO2FBQ3RCLFNBQUksR0FBRyw0Q0FBNEMsQUFBL0MsQ0FBZ0Q7SUFFcEUsWUFBbUIsTUFBYyxFQUFTLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFdBQW1CO1FBQXhGLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQzNHLENBQUM7O0FBSlUsMkJBQTJCO0lBRHZDLFdBQVcsRUFBRTtHQUNELDJCQUEyQixDQUt2Qzs7QUFHTSxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUEyQjthQUN0QixTQUFJLEdBQUcsMkNBQTJDLEFBQTlDLENBQStDO0lBRW5FLFlBQW1CLE1BQWMsRUFBUyxRQUFnQixFQUFTLElBQVksRUFBUyxXQUFtQjtRQUF4RixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUMzRyxDQUFDOztBQUpVLDJCQUEyQjtJQUR2QyxXQUFXLEVBQUU7R0FDRCwyQkFBMkIsQ0FLdkM7O0FBR00sSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7YUFDbEIsU0FBSSxHQUFHLGdDQUFnQyxBQUFuQyxDQUFvQztJQUV4RCxZQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUM1QyxDQUFDOztBQUpVLHVCQUF1QjtJQURuQyxXQUFXLEVBQUU7R0FDRCx1QkFBdUIsQ0FLbkM7O0FBRUQsTUFBTSxPQUFPLDBCQUEwQjthQUNyQixTQUFJLEdBQUcsbUNBQW1DLENBQUM7SUFFM0QsWUFBbUIsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFDOUMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sMEJBQTBCO2FBQ3JCLFNBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUUxRCxZQUFtQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtJQUMvQyxDQUFDOztBQUdILE1BQU0sT0FBTyx5QkFBeUI7YUFDcEIsU0FBSSxHQUFHLGtDQUFrQyxDQUFDO0lBRTFEO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sNEJBQTRCO2FBQ3ZCLFNBQUksR0FBRyxxQ0FBcUMsQ0FBQztJQUU3RDtJQUNBLENBQUM7O0FBR0gsTUFBTSxPQUFPLDRCQUE0QjthQUN2QixTQUFJLEdBQUcscUNBQXFDLENBQUM7SUFFN0Q7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyxpQkFBaUI7YUFDWixTQUFJLEdBQUcsNEJBQTRCLENBQUM7SUFFcEQsWUFBbUIsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUFJLENBQUM7O0FBSXZDLElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXNCO2FBQ2pCLFNBQUksR0FBRyxpQ0FBaUMsQUFBcEMsQ0FBcUM7SUFFekQsWUFBbUIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUNwQyxDQUFDOztBQUpVLHNCQUFzQjtJQURsQyxXQUFXLEVBQUU7R0FDRCxzQkFBc0IsQ0FLbEM7O0FBRUQsTUFBTSxPQUFPLHFCQUFxQjthQUNoQixTQUFJLEdBQUcsZ0NBQWdDLENBQUM7SUFFeEQsWUFBbUIsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUNwQyxDQUFDOztBQUlJLElBQU0sK0JBQStCLEdBQXJDLE1BQU0sK0JBQStCO2FBQzFCLFNBQUksR0FBRywwQ0FBMEMsQUFBN0MsQ0FBOEM7SUFFbEUsWUFBbUIsTUFBYyxFQUFTLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFNBQWUsRUFBUyxPQUFhLEVBQVMsSUFBWSxFQUFTLElBQVksRUFBUyxXQUFvQjtRQUFqTCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7SUFDcE0sQ0FBQzs7QUFKVSwrQkFBK0I7SUFEM0MsV0FBVyxFQUFFO0dBQ0QsK0JBQStCLENBSzNDOztBQUdNLElBQU0sK0JBQStCLEdBQXJDLE1BQU0sK0JBQStCO2FBQzFCLFNBQUksR0FBRywwQ0FBMEMsQUFBN0MsQ0FBOEM7SUFFbEUsWUFBbUIsTUFBYyxFQUFTLFFBQWdCLEVBQVMsSUFBWSxFQUFTLFNBQWUsRUFBUyxPQUFhLEVBQVMsSUFBWSxFQUFTLElBQVk7UUFBcEosV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsY0FBUyxHQUFULFNBQVMsQ0FBTTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQU07UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUN2SyxDQUFDOztBQUpVLCtCQUErQjtJQUQzQyxXQUFXLEVBQUU7R0FDRCwrQkFBK0IsQ0FLM0M7O0FBR00sSUFBTSxzQkFBc0IsR0FBNUIsTUFBTSxzQkFBc0I7YUFDakIsU0FBSSxHQUFHLDJCQUEyQixBQUE5QixDQUErQjtJQUVuRCxZQUFtQixNQUFjLEVBQVMsUUFBZ0IsRUFBUyxJQUFZLEVBQVMsU0FBZSxFQUFTLE9BQWEsRUFBUyxJQUFZLEVBQVMsSUFBWTtRQUFwSixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQ3ZLLENBQUM7O0FBSlUsc0JBQXNCO0lBRGxDLFdBQVcsRUFBRTtHQUNELHNCQUFzQixDQUtsQzs7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO2FBQ1gsU0FBSSxHQUFHLDhCQUE4QixDQUFDO0lBRXREO0lBQ0EsQ0FBQzs7QUFHSCxNQUFNLE9BQU8seUJBQXlCO2FBQ3BCLFNBQUksR0FBRyx5QkFBeUIsQ0FBQztJQUVqRCxZQUFtQixZQUE2QjtRQUE3QixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7SUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmljZXNWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9lbnVtcy9kZXZpY2VzLXZpZXctbW9kZS5lbnVtXCI7XG5pbXBvcnQgeyBTZWxlY3RlZFJvdyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL3NlbGVjdGVkLXJvdy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IERldmljZUR0bywgRGV2aWNlRXZlbnREdG8sIERldmljZVN0YXR1c0R0bywgRGV2aWNlVHlwZSwgRXZlbnRBY3Rpdml0eUR0bywgTHByVHJhbnNhY3Rpb25EdG8sIFNlYXJjaFBhcmFtc0R0byB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLXByb3h5L3JwYy1zZXJ2aWNlLXByb3hpZXNcIjtcbmltcG9ydCB7IFRyYWNrQWN0aW9uIH0gZnJvbSBcIi4uLy4uL3V0aWxzL25neHMvdHJhY2stYWN0aW9uLmRlY29yYXRvclwiO1xuXG5leHBvcnQgY2xhc3MgU2V0RGV2aWNlVmlld01vZGVBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VWaWV3TW9kZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdNb2RlOiBEZXZpY2VzVmlld01vZGUpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0RGV2aWNlQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0RGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlSWQpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlSWQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZFNlbGVjdGVkRGV2aWNlQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZFNlbGVjdGVkRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZSc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkRGV2aWNlc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzZWFyY2hQYXJhbXNEdG8/OiBTZWFyY2hQYXJhbXNEdG8sIHB1YmxpYyBpc1RsNjA6IGJvb2xlYW4gPSBudWxsKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VzQnlUeXBlQWN0aW9uIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VzQnlUeXBlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzZWFyY2hQYXJhbXNEdG86IFNlYXJjaFBhcmFtc0R0bywgcHVibGljIGRldmljZVR5cGVzOiBEZXZpY2VUeXBlW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gQ2xlYXJEZXZpY2VzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlRXZlbnRDaGFuZ2VkQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gRGV2aWNlRXZlbnRDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2RXZlbnQ6IGFueSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXZpY2VBY3Rpdml0eUNoYW5nZWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBEZXZpY2VBY3Rpdml0eUNoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBldmVudEFjdGl2aXR5OiBhbnkpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTHByVHJhbnNhY3Rpb25zQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIERldmljZSBMUFJUcmFuc2FjdGlvbkNoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBscHJUcmFuc2FjdGlvbjogTHByVHJhbnNhY3Rpb25EdG8pIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudHNDb2xsYXBzZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmtJZDogbnVtYmVyLCBwdWJsaWMgZGV2aWNlSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHJlc3VsdExpbWl0OiBudW1iZXIpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWRFdmVudEFjdGl2aXRpZXNDb2xsYXBzZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBhcmtJZDogbnVtYmVyLCBwdWJsaWMgZGV2aWNlSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHJlc3VsdExpbWl0OiBudW1iZXIpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWRMcHJUcmFuc2FjdGlvbnNDb2xsYXBzZSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWRMcHJUcmFuc2FjdGlvbkNvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgU2V0RGV2aWNlRXZlbnRzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBEZXZpY2VFdmVudER0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldEV2ZW50QWN0aXZpdGllc0V4cGFuZGVkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2V0RXZlbnRBY3Rpdml0aWVzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVNldDogRXZlbnRBY3Rpdml0eUR0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldExwclRyYW5zYWN0aW9uc0V4cGFuZGVkIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2V0THByVHJhbnNhY3Rpb24nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBMcHJUcmFuc2FjdGlvbkR0b1tdKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRGV2aWNlRXZlbnRzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZUV2ZW50cyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckV2ZW50QWN0aXZpdGllcyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyTHByVHJhbnNhY3Rpb25zRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckxwclRyYW5zYWN0aW9ucyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0ZWRSb3cnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTZWxlY3RlZFJvdykgeyB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZVN0YXR1c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VTdGF0dXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyLCBwdWJsaWMgc2VhcmNoVmFsdWU/OiBzdHJpbmcpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgc3RhcnREYXRlOiBEYXRlLCBwdWJsaWMgZW5kRGF0ZTogRGF0ZSwgcHVibGljIHRha2U6IG51bWJlciwgcHVibGljIHNraXA6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2VdIExvYWREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRSb3cge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhclNlbGVjdGVkJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2Utc3RhdHVzXSBDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyay1tYW5hZ2VyLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtc2hhcmVkLWxpYi9zcmMvbGlicmFyaWVzL21vZHVsZXMvcGFyay1tYW5hZ2VyL3BhcmstbWFuYWdlci5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsTUFBTSxPQUFPLHVCQUF1QjthQUNsQixTQUFJLEdBQUcsa0NBQWtDLENBQUM7SUFFMUQsWUFBbUIsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFDNUMsQ0FBQzs7QUFHSCxNQUFNLE9BQU8sa0JBQWtCO2FBQ2IsU0FBSSxHQUFHLDZCQUE2QixDQUFDO0lBRXJELFlBQW1CLFFBQVE7UUFBUixhQUFRLEdBQVIsUUFBUSxDQUFBO0lBQzNCLENBQUM7O0FBSUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsMkJBQTJCLEFBQTlCLENBQStCO0lBRW5ELFlBQW1CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDbkMsQ0FBQzs7QUFKVSxnQkFBZ0I7SUFENUIsV0FBVyxFQUFFO0dBQ0QsZ0JBQWdCLENBSzVCOztBQUdNLElBQU0sd0JBQXdCLEdBQTlCLE1BQU0sd0JBQXdCO2FBQ25CLFNBQUksR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7SUFFM0Q7SUFDQSxDQUFDOztBQUpVLHdCQUF3QjtJQURwQyxXQUFXLEVBQUU7R0FDRCx3QkFBd0IsQ0FLcEM7O0FBRUQsTUFBTSxPQUFPLGlCQUFpQjthQUNaLFNBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUVwRDtJQUNBLENBQUM7O0FBSUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7YUFDWixTQUFJLEdBQUcsNEJBQTRCLEFBQS9CLENBQWdDO0lB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LENBQStCO0lBRW5ELFlBQW1CLE1BQWMsRUFBUyxRQUFnQixFQUFTLElBQVksRUFBUyxTQUFlLEVBQVMsT0FBYSxFQUFTLElBQVksRUFBUyxJQUFZO1FBQXBKLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQU07UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFNO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFTLFNBQUksR0FBSixJQUFJLENBQVE7SUFDdkssQ0FBQzs7QUFKVSxzQkFBc0I7SUFEbEMsV0FBVyxFQUFFO0dBQ0Qsc0JBQXNCLENBS2xDOztBQUVELE1BQU0sT0FBTyxnQkFBZ0I7YUFDWCxTQUFJLEdBQUcsOEJBQThCLENBQUM7SUFFdEQ7SUFDQSxDQUFDOztBQUdILE1BQU0sT0FBTyx5QkFBeUI7YUFDcEIsU0FBSSxHQUFHLHlCQUF5QixDQUFDO0lBRWpELFlBQW1CLFlBQTZCO1FBQTdCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtJQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGV2aWNlc1ZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL2VudW1zL2RldmljZXMtdmlldy1tb2RlLmVudW1cIjtcbmltcG9ydCB7IFNlbGVjdGVkUm93IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2VsZWN0ZWQtcm93LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRGV2aWNlRHRvLCBEZXZpY2VFdmVudER0bywgRGV2aWNlU3RhdHVzRHRvLCBEZXZpY2VUeXBlLCBFdmVudEFjdGl2aXR5RHRvLCBMcHJUcmFuc2FjdGlvbkR0bywgU2VhcmNoUGFyYW1zRHRvIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2UtcHJveHkvcnBjLXNlcnZpY2UtcHJveGllc1wiO1xuaW1wb3J0IHsgVHJhY2tBY3Rpb24gfSBmcm9tIFwiLi4vLi4vdXRpbHMvbmd4cy90cmFjay1hY3Rpb24uZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VWaWV3TW9kZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIFNldERldmljZVZpZXdNb2RlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld01vZGU6IERldmljZXNWaWV3TW9kZSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3REZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZWxlY3REZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2VJZCkge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBMb2FkU2VsZWN0ZWREZXZpY2VBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkU2VsZWN0ZWREZXZpY2UnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhckRldmljZUFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRGV2aWNlJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VzQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHNlYXJjaFBhcmFtc0R0bz86IFNlYXJjaFBhcmFtc0R0bywgcHVibGljIGlzVGw2MDogYm9vbGVhbiA9IG51bGwpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9hZERldmljZXNCeVR5cGVBY3Rpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZXNCeVR5cGUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGd1aWQ6IHN0cmluZywgcHVibGljIHNlYXJjaFBhcmFtc0R0bzogU2VhcmNoUGFyYW1zRHRvLCBwdWJsaWMgZGV2aWNlVHlwZXM6IERldmljZVR5cGVbXSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbGVhckRldmljZXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhckRldmljZXMnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXZpY2VFdmVudENoYW5nZWRBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBEZXZpY2VFdmVudENoYW5nZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZFdmVudDogYW55KSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERldmljZUFjdGl2aXR5Q2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIERldmljZUFjdGl2aXR5Q2hhbmdlZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGV2ZW50QWN0aXZpdHk6IGFueSkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMcHJUcmFuc2FjdGlvbnNDaGFuZ2VkQWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gRGV2aWNlIExQUlRyYW5zYWN0aW9uQ2hhbmdlZCc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxwclRyYW5zYWN0aW9uOiBMcHJUcmFuc2FjdGlvbkR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZERldmljZUV2ZW50c0NvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZEV2ZW50QWN0aXZpdGllc0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZEV2ZW50QWN0aXZpdGllc0NvbGxhcHNlJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgcmVzdWx0TGltaXQ6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZExwclRyYW5zYWN0aW9uc0NvbGxhcHNlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gTG9hZExwclRyYW5zYWN0aW9uQ29sbGFwc2UnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyByZXN1bHRMaW1pdDogbnVtYmVyKSB7XG4gIH1cbn1cblxuQFRyYWNrQWN0aW9uKClcbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VFdmVudHNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIFNldERldmljZUV2ZW50cyc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXQ6IERldmljZUV2ZW50RHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0RXZlbnRBY3Rpdml0aWVzRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXRFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhU2V0OiBFdmVudEFjdGl2aXR5RHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0THByVHJhbnNhY3Rpb25zRXhwYW5kZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXRMcHJUcmFuc2FjdGlvbic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXQ6IExwclRyYW5zYWN0aW9uRHRvW10pIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZXZpY2VFdmVudHNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRGV2aWNlRXZlbnRzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJFdmVudEFjdGl2aXRpZXNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyRXZlbnRBY3Rpdml0aWVzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJMcHJUcmFuc2FjdGlvbnNFeHBhbmRlZCB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIENsZWFyTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0THByVHJhbnNhY3Rpb25zUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0THByVHJhbnNhY3Rpb25zUm93JztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IExwclRyYW5zYWN0aW9uRHRvKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkUm93QWN0aW9uIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW3BhcmstbWFuYWdlcl0gU2VsZWN0ZWRSb3cnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTZWxlY3RlZFJvdykgeyB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZVN0YXR1c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXREZXZpY2VTdGF0dXNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBTZXREZXZpY2VTdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkZXZpY2U6IERldmljZUR0bykge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50QWN0aXZpdGllc0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1twYXJrLW1hbmFnZXJdIExvYWREZXZpY2VFdmVudEFjdGl2aXRpZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyLCBwdWJsaWMgc2VhcmNoVmFsdWU/OiBzdHJpbmcpIHtcbiAgfVxufVxuXG5AVHJhY2tBY3Rpb24oKVxuZXhwb3J0IGNsYXNzIExvYWREZXZpY2VMcHJUcmFuc2FjdGlvbnNBY3Rpb24ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBMb2FkRGV2aWNlTHByVHJhbnNhY3Rpb25zJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGFya0lkOiBudW1iZXIsIHB1YmxpYyBkZXZpY2VJZDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nLCBwdWJsaWMgc3RhcnREYXRlOiBEYXRlLCBwdWJsaWMgZW5kRGF0ZTogRGF0ZSwgcHVibGljIHRha2U6IG51bWJlciwgcHVibGljIHNraXA6IG51bWJlcikge1xuICB9XG59XG5cbkBUcmFja0FjdGlvbigpXG5leHBvcnQgY2xhc3MgTG9hZERldmljZUV2ZW50c0FjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2VdIExvYWREZXZpY2VFdmVudHMnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJrSWQ6IG51bWJlciwgcHVibGljIGRldmljZUlkOiBudW1iZXIsIHB1YmxpYyBndWlkOiBzdHJpbmcsIHB1YmxpYyBzdGFydERhdGU6IERhdGUsIHB1YmxpYyBlbmREYXRlOiBEYXRlLCBwdWJsaWMgdGFrZTogbnVtYmVyLCBwdWJsaWMgc2tpcDogbnVtYmVyKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyU2VsZWN0ZWRSb3cge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbcGFyay1tYW5hZ2VyXSBDbGVhclNlbGVjdGVkJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGV2aWNlU3RhdHVzQ2hhbmdlZEFjdGlvbiB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tkZXZpY2Utc3RhdHVzXSBDaGFuZ2VkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgfVxufVxuIl19
|