@lowcodeunit/applications-flow-common 1.39.98-merge → 1.39.100-codesplitting

Sign up to get free protection for your applications and to get access to all the features.
@@ -310,7 +310,7 @@ export class EaCService {
310
310
  EnterpriseLookup: state.EaC.EnterpriseLookup,
311
311
  Enterprise: {
312
312
  ...state.EaC.Enterprise,
313
- PrimaryHost: project.PrimaryHost,
313
+ // PrimaryHost: project.PrimaryHost,
314
314
  },
315
315
  Hosts: projHosts,
316
316
  // Providers: state.EaC.Providers, // TODO: Remove after all providers ADB2C's have been upgraded
@@ -332,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
332
332
  providedIn: 'root',
333
333
  }]
334
334
  }], ctorParameters: function () { return [{ type: i1.ProjectService }, { type: i2.HttpClient }]; } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDSCxxQkFBcUIsR0FFeEIsTUFBTSxrQ0FBa0MsQ0FBQztBQWExQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7O0FBRW5ELE1BQU0sT0FBTyxpQ0FBaUM7Q0FNN0M7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0NBUXZDO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztDQU03QztBQUVELE1BQU0sT0FBTyw2QkFBNkI7Q0FJekM7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQWVuQixnQkFBZ0I7SUFDaEIsWUFDYyxjQUE4QixFQUM5QixJQUFnQjtRQURoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUUxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBbEJELGNBQWM7SUFDZCxJQUFXLG9CQUFvQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFhRCxlQUFlO0lBQ1IsaUJBQWlCLENBQUMsUUFBa0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7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O1lBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFxQjtZQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUM1QyxVQUFVLEVBQUU7Z0JBQ1IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7Z0JBQ3ZCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVzthQUNuQztZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLG9HQUFvRztZQUNwRyxRQUFRLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFFRixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUUxQyw4Q0FBOEM7UUFFOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN2RCxLQUFLLEVBQ0wsT0FBTyxDQUNWLENBQUM7UUFFRixJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7dUdBaGlCUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRGF0YVRva2VuLFxuICAgIEVhQ0RGU01vZGlmaWVyLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ0hvc3QsXG4gICAgRWFDUHJvamVjdEFzQ29kZSxcbiAgICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VSZXNwb25zZSwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbj86IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gICAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIFByb2plY3RMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICAgIHB1YmxpYyBNb2RpZmllcj86IEVhQ0RGU01vZGlmaWVyO1xuXG4gICAgcHVibGljIE1vZGlmaWVyTG9va3Vwcz86IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgICBwdWJsaWMgRW50ZXJwcmlzZURhdGFUb2tlbnM/OiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0RhdGFUb2tlbiB9O1xuXG4gICAgcHVibGljIEVudmlyb25tZW50PzogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIFByb2plY3Q/OiBFYUNQcm9qZWN0QXNDb2RlO1xuXG4gICAgcHVibGljIFByb2plY3RMb29rdXA/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVhQ1NlcnZpY2Uge1xuICAgIC8vRmllbGRzXG4gICAgcHJvdGVjdGVkIHN0YXRlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZT47XG5cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIHB1YmxpYyBnZXQgRWRpdGluZ1Byb2plY3RMb29rdXAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRWRpdGluZ1Byb2plY3RMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBDcmVhdGluZ1Byb2plY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkNyZWF0aW5nUHJvamVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgU3RhdGU6IE9ic2VydmFibGU8QXBwbGljYXRpb25zRmxvd1N0YXRlPjtcblxuICAgIC8vICBDb25zdHJ1Y3RvcnNcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG5ldyBBcHBsaWNhdGlvbnNGbG93U3RhdGUoKSk7XG4gICAgICAgIHRoaXMuU3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQ2hlY2tVc2VyRmVlZEl0ZW0oZmVlZEl0ZW06IEZlZWRJdGVtKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoZmVlZEl0ZW0uUmVmcmVzaExpbmspO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVBcHBsaWNhdGlvbihcbiAgICAgICAgYXBwTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGFwcE5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYXBwbGljYXRpb24gJyR7YXBwTmFtZX0nP2ApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb246IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZURldk9wc0FjdGlvbihcbiAgICAgICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGRvYU5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgQnVpbGQgUGlwZWxpbmUgJyR7ZG9hTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICAgICAgICAgIERldk9wc0FjdGlvbnM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tcbiAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRcbiAgICAgICAgICAgIF0uRGV2T3BzQWN0aW9uc1tkb2FMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVNb2RpZmllcihcbiAgICAgICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICAgICAgbW9kaWZpZXJOYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKFxuICAgICAgICAgICAgICAgIGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIE1vZGlmaWVyICcke21vZGlmaWVyTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBNb2RpZmllcnM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLk1vZGlmaWVyc1ttb2RpZmllckxvb2t1cF0gPSB7fTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZVByb2plY3QoXG4gICAgICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICAgICAgcHJvamVjdE5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nP2ApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogc3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLlByb2plY3RzW3Byb2plY3RMb29rdXBdID0ge1xuICAgICAgICAgICAgICAgIFByb2plY3Q6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU291cmNlQ29udHJvbChcbiAgICAgICAgc3JjTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHNyY05hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgU291cmNlIENvbnRyb2wgJyR7c3JjTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICAgICAgICAgIFNvdXJjZXM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdLlNvdXJjZXNbXG4gICAgICAgICAgICAgICAgc3JjTG9va3VwXG4gICAgICAgICAgICBdID0ge307XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGhpcy5hcHBzRmxvd0V2ZW50c1N2Yy5FbnN1cmVVc2VyRW50ZXJwcmlzZUV2ZW50LnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICAgIC8vIH0pO1xuXG4gICAgcHVibGljIGFzeW5jIEVuc3VyZVVzZXJFbnRlcnByaXNlKCk6IFByb21pc2U8QmFzZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHN0YXRlKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBlYWNcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuR2V0QWN0aXZlRW50ZXJwcmlzZShzdGF0ZSk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExvYWRVc2VyRmVlZChcbiAgICAgICAgcGFnZTogbnVtYmVyLFxuICAgICAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgICAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBmaWx0ZXJTdHI6IHN0cmluZyA9ICcnXG4gICAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZFVzZXJGZWVkKFxuICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIHBhZ2VTaXplLFxuICAgICAgICAgICAgZmlsdGVyU3RyLFxuICAgICAgICAgICAgZm9yQ2hlY2ssXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBsaWNhdGlvbnM6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEhhc1ZhbGlkQ29ubmVjdGlvbigpOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHN0YXRlKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTGlzdEVudGVycHJpc2VzKCk6IFByb21pc2U8QXJyYXk8YW55Pj4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5MaXN0RW50ZXJwcmlzZXMoc3RhdGUpO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckluZm8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyTGljZW5zZUluZm8oc3RhdGUpO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVsb2FkRmVlZCgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGlmIChzdGF0ZS5GZWVkQ2hlY2spIHtcbiAgICAgICAgICAgIHN0YXRlLkZlZWQgPSBzdGF0ZS5GZWVkQ2hlY2suSXRlbXM7XG5cbiAgICAgICAgICAgIHN0YXRlLkZlZWRBY3Rpb25zID0gc3RhdGUuRmVlZENoZWNrLkFjdGlvbnM7XG5cbiAgICAgICAgICAgIHN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgc3RhdGUuRmVlZENoZWNrLlNvdXJjZUNvbnRyb2xMb29rdXBzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuRmVlZENoZWNrID0gbnVsbDtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlQXBwbGljYXRpb25Bc0NvZGUoXG4gICAgICAgIHJlcTogU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0NhbGxpbmcgU2F2ZSBBcHAgYXMgQ29kZTogJywgcmVxKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZUFwcGxpY2F0aW9uKHJlcSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVERlNNb2RpZmllcihcbiAgICAgICAgcmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlREZTTW9kaWZpZXIocmVxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudGVycHJpc2VBc0NvZGUoZWFjOiBFbnRlcnByaXNlQXNDb2RlKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIGVhY1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudmlyb25tZW50QXNDb2RlKFxuICAgICAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVFbnZpcm9ubWVudChyZXEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlUHJvamVjdEFzQ29kZShcbiAgICAgICAgcmVxOiBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVQcm9qZWN0KHJlcS5Qcm9qZWN0TG9va3VwLCByZXEuUHJvamVjdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoZW50TG9va3VwOiBhbnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5wcm9qZWN0U2VydmljZS5TZXRBY3RpdmVFbnRlcnByaXNlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBlbnRMb29rdXBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5wcm9qZWN0U2VydmljZS5TZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0KTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEVkaXRQcm9qZWN0U2V0dGluZ3MocHJvamVjdExvb2t1cDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHByb2plY3RMb29rdXBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KGVudHJ5OiBGZWVkRW50cnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TdWJtaXRGZWVkRW50cnkoc3RhdGUsIGVudHJ5KTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgICAgIHJlcTogVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucGFjayBhcHBsaWNhdGlvbiAnJHtyZXEuQXBwbGljYXRpb25OYW1lfScgd2l0aCB2ZXJzaW9uICcke3JlcS5WZXJzaW9ufSc/YFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdChcbiAgICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgICByZXFcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVBcHBsaWNhdGlvbihcbiAgICAgICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ2NhbGxpbmcgaGFuZGxlIFNhdmUgQXBwOiAnLCBzdGF0ZSk7XG5cbiAgICAgICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgICAgICAgICAgICBbcmVxLlByb2plY3RMb29rdXBdOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwczogW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNhdmVFYUMuUHJvamVjdHMgPSBleGlzdGluZ1Byb2o7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuICAgICAgICBjb25zb2xlLmxvZygnU0hPVUxEIEJFIENBTExFRCBMQVNUIFN0YXRlIGFmdGVyIHNhdmUgYXBwOiAnLCBzdGF0ZSk7XG4gICAgICAgIC8vIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZURGU01vZGlmaWVyKFxuICAgICAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogc3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICBNb2RpZmllcnM6IHt9LFxuICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLk1vZGlmaWVyKSB7XG4gICAgICAgICAgICBzYXZlRWFDLk1vZGlmaWVyc1tyZXEuTW9kaWZpZXJMb29rdXBzWzBdXSA9IHJlcS5Nb2RpZmllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXEuUHJvamVjdExvb2t1cHMpIHtcbiAgICAgICAgICAgIHJlcS5Qcm9qZWN0TG9va3Vwcy5mb3JFYWNoKChsb29rdXApID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlRWFDLlByb2plY3RzW2xvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogcmVxLk1vZGlmaWVyTG9va3VwcyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uTG9va3VwKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQVBQTE9va3VwOiAnLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3NhdmVFQUM6ICcsIHNhdmVFYUMpO1xuICAgICAgICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1NhdmUgbW9kIGVhYzogJywgc2F2ZUVhQyk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlRW52aXJvbm1lbnQoXG4gICAgICAgIHJlcTogU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZT8uRWFDPy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkVudGVycHJpc2VEYXRhVG9rZW5zKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkRhdGFUb2tlbnMgPSByZXEuRW50ZXJwcmlzZURhdGFUb2tlbnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBwcm9qSG9zdHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDSG9zdCB9ID0ge307XG5cbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIHByb2plY3Q/Lkhvc3RzPy5mb3JFYWNoKChob3N0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb2pIb3N0c1tob3N0XSA9IHN0YXRlLkVhQy5Ib3N0c1tob3N0XTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZToge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLkVhQy5FbnRlcnByaXNlLFxuICAgICAgICAgICAgICAgIFByaW1hcnlIb3N0OiBwcm9qZWN0LlByaW1hcnlIb3N0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEhvc3RzOiBwcm9qSG9zdHMsXG4gICAgICAgICAgICAvLyBQcm92aWRlcnM6IHN0YXRlLkVhQy5Qcm92aWRlcnMsICAvLyAgVE9ETzogIFJlbW92ZSBhZnRlciBhbGwgcHJvdmlkZXJzIEFEQjJDJ3MgaGF2ZSBiZWVuIHVwZ3JhZGVkXG4gICAgICAgICAgICBQcm9qZWN0czoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgc2F2ZUVhQy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHByb2plY3Q7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NhdmUgZWFjIHJlcXVlc3Q6ICcsIHNhdmVFYUMpO1xuXG4gICAgICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5TZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbn1cbiJdfQ==
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDSCxxQkFBcUIsR0FFeEIsTUFBTSxrQ0FBa0MsQ0FBQztBQWExQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7O0FBRW5ELE1BQU0sT0FBTyxpQ0FBaUM7Q0FNN0M7QUFFRCxNQUFNLE9BQU8sMkJBQTJCO0NBUXZDO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztDQU03QztBQUVELE1BQU0sT0FBTyw2QkFBNkI7Q0FJekM7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQWVuQixnQkFBZ0I7SUFDaEIsWUFDYyxjQUE4QixFQUM5QixJQUFnQjtRQURoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUUxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBbEJELGNBQWM7SUFDZCxJQUFXLG9CQUFvQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFhRCxlQUFlO0lBQ1IsaUJBQWlCLENBQUMsUUFBa0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7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O1lBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFxQjtZQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUM1QyxVQUFVLEVBQUU7Z0JBQ1IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVU7Z0JBQ3ZCLG9DQUFvQzthQUN2QztZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLG9HQUFvRztZQUNwRyxRQUFRLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFFRixPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUUxQyw4Q0FBOEM7UUFFOUMsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUN2RCxLQUFLLEVBQ0wsT0FBTyxDQUNWLENBQUM7UUFFRixJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7dUdBaGlCUSxVQUFVOzJHQUFWLFVBQVUsY0FGUCxNQUFNOzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSxcbiAgICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gICAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gICAgRWFDRGF0YVRva2VuLFxuICAgIEVhQ0RGU01vZGlmaWVyLFxuICAgIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICAgIEVhQ0hvc3QsXG4gICAgRWFDUHJvamVjdEFzQ29kZSxcbiAgICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VSZXNwb25zZSwgU3RhdHVzIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbj86IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gICAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwPzogc3RyaW5nO1xuXG4gICAgcHVibGljIFByb2plY3RMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3Qge1xuICAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICAgIHB1YmxpYyBNb2RpZmllcj86IEVhQ0RGU01vZGlmaWVyO1xuXG4gICAgcHVibGljIE1vZGlmaWVyTG9va3Vwcz86IEFycmF5PHN0cmluZz47XG5cbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgICBwdWJsaWMgRW50ZXJwcmlzZURhdGFUb2tlbnM/OiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0RhdGFUb2tlbiB9O1xuXG4gICAgcHVibGljIEVudmlyb25tZW50PzogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gICAgcHVibGljIFByb2plY3Q/OiBFYUNQcm9qZWN0QXNDb2RlO1xuXG4gICAgcHVibGljIFByb2plY3RMb29rdXA/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVhQ1NlcnZpY2Uge1xuICAgIC8vRmllbGRzXG4gICAgcHJvdGVjdGVkIHN0YXRlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZT47XG5cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIHB1YmxpYyBnZXQgRWRpdGluZ1Byb2plY3RMb29rdXAoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRWRpdGluZ1Byb2plY3RMb29rdXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBDcmVhdGluZ1Byb2plY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkNyZWF0aW5nUHJvamVjdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgU3RhdGU6IE9ic2VydmFibGU8QXBwbGljYXRpb25zRmxvd1N0YXRlPjtcblxuICAgIC8vICBDb25zdHJ1Y3RvcnNcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG5ldyBBcHBsaWNhdGlvbnNGbG93U3RhdGUoKSk7XG4gICAgICAgIHRoaXMuU3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQ2hlY2tVc2VyRmVlZEl0ZW0oZmVlZEl0ZW06IEZlZWRJdGVtKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoZmVlZEl0ZW0uUmVmcmVzaExpbmspO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVBcHBsaWNhdGlvbihcbiAgICAgICAgYXBwTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGFwcE5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYXBwbGljYXRpb24gJyR7YXBwTmFtZX0nP2ApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgQXBwbGljYXRpb246IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZURldk9wc0FjdGlvbihcbiAgICAgICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIGRvYU5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgQnVpbGQgUGlwZWxpbmUgJyR7ZG9hTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICAgICAgICAgIERldk9wc0FjdGlvbnM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tcbiAgICAgICAgICAgICAgICBzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRcbiAgICAgICAgICAgIF0uRGV2T3BzQWN0aW9uc1tkb2FMb29rdXBdID0ge307XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBEZWxldGVNb2RpZmllcihcbiAgICAgICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICAgICAgbW9kaWZpZXJOYW1lOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maXJtKFxuICAgICAgICAgICAgICAgIGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIE1vZGlmaWVyICcke21vZGlmaWVyTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBNb2RpZmllcnM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLk1vZGlmaWVyc1ttb2RpZmllckxvb2t1cF0gPSB7fTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIERlbGV0ZVByb2plY3QoXG4gICAgICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICAgICAgcHJvamVjdE5hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nP2ApXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogc3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLlByb2plY3RzW3Byb2plY3RMb29rdXBdID0ge1xuICAgICAgICAgICAgICAgIFByb2plY3Q6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICAgICAgZWFjXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgRGVsZXRlU291cmNlQ29udHJvbChcbiAgICAgICAgc3JjTG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHNyY05hbWU6IHN0cmluZ1xuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbmZpcm0oXG4gICAgICAgICAgICAgICAgYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgU291cmNlIENvbnRyb2wgJyR7c3JjTmFtZX0nP2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICAgICAgICAgIFNvdXJjZXM6IHt9LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWFjLkVudmlyb25tZW50c1tzdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdLlNvdXJjZXNbXG4gICAgICAgICAgICAgICAgc3JjTG9va3VwXG4gICAgICAgICAgICBdID0ge307XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICAgIGVhY1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGhpcy5hcHBzRmxvd0V2ZW50c1N2Yy5FbnN1cmVVc2VyRW50ZXJwcmlzZUV2ZW50LnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICAgIC8vIH0pO1xuXG4gICAgcHVibGljIGFzeW5jIEVuc3VyZVVzZXJFbnRlcnByaXNlKCk6IFByb21pc2U8QmFzZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHN0YXRlKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgZWFjOiBFbnRlcnByaXNlQXNDb2RlXG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW50ZXJwcmlzZUFzQ29kZVJlbW92YWxzKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBlYWNcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgR2V0QWN0aXZlRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuR2V0QWN0aXZlRW50ZXJwcmlzZShzdGF0ZSk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIExvYWRVc2VyRmVlZChcbiAgICAgICAgcGFnZTogbnVtYmVyLFxuICAgICAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgICAgICBmb3JDaGVjazogYm9vbGVhbiA9IGZhbHNlLFxuICAgICAgICBmaWx0ZXJTdHI6IHN0cmluZyA9ICcnXG4gICAgKTogUHJvbWlzZTxBcnJheTxGZWVkSXRlbT4+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZFVzZXJGZWVkKFxuICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIHBhZ2VTaXplLFxuICAgICAgICAgICAgZmlsdGVyU3RyLFxuICAgICAgICAgICAgZm9yQ2hlY2ssXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZW5lcmF0ZVJvdXRlZEFwcGxpY2F0aW9ucyhhcHBsaWNhdGlvbnM6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIEhhc1ZhbGlkQ29ubmVjdGlvbigpOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHN0YXRlKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgTGlzdEVudGVycHJpc2VzKCk6IFByb21pc2U8QXJyYXk8YW55Pj4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5MaXN0RW50ZXJwcmlzZXMoc3RhdGUpO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPEVudGVycHJpc2VBc0NvZGU+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuTG9hZEVudGVycHJpc2VBc0NvZGUoc3RhdGUpO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBMb2FkVXNlckluZm8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyTGljZW5zZUluZm8oc3RhdGUpO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgUmVsb2FkRmVlZCgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGlmIChzdGF0ZS5GZWVkQ2hlY2spIHtcbiAgICAgICAgICAgIHN0YXRlLkZlZWQgPSBzdGF0ZS5GZWVkQ2hlY2suSXRlbXM7XG5cbiAgICAgICAgICAgIHN0YXRlLkZlZWRBY3Rpb25zID0gc3RhdGUuRmVlZENoZWNrLkFjdGlvbnM7XG5cbiAgICAgICAgICAgIHN0YXRlLkZlZWRTb3VyY2VDb250cm9sTG9va3VwcyA9XG4gICAgICAgICAgICAgICAgc3RhdGUuRmVlZENoZWNrLlNvdXJjZUNvbnRyb2xMb29rdXBzO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuRmVlZENoZWNrID0gbnVsbDtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlQXBwbGljYXRpb25Bc0NvZGUoXG4gICAgICAgIHJlcTogU2F2ZUFwcGxpY2F0aW9uQXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0NhbGxpbmcgU2F2ZSBBcHAgYXMgQ29kZTogJywgcmVxKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZUFwcGxpY2F0aW9uKHJlcSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNhdmVERlNNb2RpZmllcihcbiAgICAgICAgcmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlREZTTW9kaWZpZXIocmVxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudGVycHJpc2VBc0NvZGUoZWFjOiBFbnRlcnByaXNlQXNDb2RlKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIGVhY1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2F2ZUVudmlyb25tZW50QXNDb2RlKFxuICAgICAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVFbnZpcm9ubWVudChyZXEpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBTYXZlUHJvamVjdEFzQ29kZShcbiAgICAgICAgcmVxOiBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVQcm9qZWN0KHJlcS5Qcm9qZWN0TG9va3VwLCByZXEuUHJvamVjdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEFjdGl2ZUVudGVycHJpc2UoZW50TG9va3VwOiBhbnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5wcm9qZWN0U2VydmljZS5TZXRBY3RpdmVFbnRlcnByaXNlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBlbnRMb29rdXBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5wcm9qZWN0U2VydmljZS5TZXRDcmVhdGluZ1Byb2plY3QoY3JlYXRpbmdQcm9qZWN0KTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIFNldEVkaXRQcm9qZWN0U2V0dGluZ3MocHJvamVjdExvb2t1cDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3MoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHByb2plY3RMb29rdXBcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KGVudHJ5OiBGZWVkRW50cnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TdWJtaXRGZWVkRW50cnkoc3RhdGUsIGVudHJ5KTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgVW5wYWNrTG93Q29kZVVuaXQoXG4gICAgICAgIHJlcTogVW5wYWNrTG93Q29kZVVuaXRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlybShcbiAgICAgICAgICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucGFjayBhcHBsaWNhdGlvbiAnJHtyZXEuQXBwbGljYXRpb25OYW1lfScgd2l0aCB2ZXJzaW9uICcke3JlcS5WZXJzaW9ufSc/YFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdChcbiAgICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgICByZXFcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVBcHBsaWNhdGlvbihcbiAgICAgICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVTdWJqZWN0LmdldFZhbHVlKCk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ2NhbGxpbmcgaGFuZGxlIFNhdmUgQXBwOiAnLCBzdGF0ZSk7XG5cbiAgICAgICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLlByb2plY3RMb29rdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgICAgICAgICAgICBbcmVxLlByb2plY3RMb29rdXBdOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwczogW3JlcS5BcHBsaWNhdGlvbkxvb2t1cF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNhdmVFYUMuUHJvamVjdHMgPSBleGlzdGluZ1Byb2o7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuICAgICAgICBjb25zb2xlLmxvZygnU0hPVUxEIEJFIENBTExFRCBMQVNUIFN0YXRlIGFmdGVyIHNhdmUgYXBwOiAnLCBzdGF0ZSk7XG4gICAgICAgIC8vIHN0YXRlLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gc3RhdGUuTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2F2ZURGU01vZGlmaWVyKFxuICAgICAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICAgICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogc3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgICAgICBNb2RpZmllcnM6IHt9LFxuICAgICAgICAgICAgUHJvamVjdHM6IHt9LFxuICAgICAgICAgICAgQXBwbGljYXRpb25zOiB7fSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAocmVxLk1vZGlmaWVyKSB7XG4gICAgICAgICAgICBzYXZlRWFDLk1vZGlmaWVyc1tyZXEuTW9kaWZpZXJMb29rdXBzWzBdXSA9IHJlcS5Nb2RpZmllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXEuUHJvamVjdExvb2t1cHMpIHtcbiAgICAgICAgICAgIHJlcS5Qcm9qZWN0TG9va3Vwcy5mb3JFYWNoKChsb29rdXApID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlRWFDLlByb2plY3RzW2xvb2t1cF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIE1vZGlmaWVyTG9va3VwczogcmVxLk1vZGlmaWVyTG9va3VwcyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkFwcGxpY2F0aW9uTG9va3VwKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQVBQTE9va3VwOiAnLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3NhdmVFQUM6ICcsIHNhdmVFYUMpO1xuICAgICAgICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXSA9IHtcbiAgICAgICAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1NhdmUgbW9kIGVhYzogJywgc2F2ZUVhQyk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzID0gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5TYXZlRW50ZXJwcmlzZUFzQ29kZShcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgc2F2ZUVhQ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlRW52aXJvbm1lbnQoXG4gICAgICAgIHJlcTogU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgICAgICBFbnRlcnByaXNlTG9va3VwOiBzdGF0ZT8uRWFDPy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRGF0YVRva2Vuczoge30sXG4gICAgICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxLkVudGVycHJpc2VEYXRhVG9rZW5zKSB7XG4gICAgICAgICAgICBzYXZlRWFDLkRhdGFUb2tlbnMgPSByZXEuRW50ZXJwcmlzZURhdGFUb2tlbnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIHJldHVybiBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgICAgICBwcm9qZWN0TG9va3VwOiBzdHJpbmcsXG4gICAgICAgIHByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGVcbiAgICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgICAgICBjb25zdCBwcm9qSG9zdHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDSG9zdCB9ID0ge307XG5cbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlU3ViamVjdC5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIHByb2plY3Q/Lkhvc3RzPy5mb3JFYWNoKChob3N0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHByb2pIb3N0c1tob3N0XSA9IHN0YXRlLkVhQy5Ib3N0c1tob3N0XTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2F2ZUVhQzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgICAgIEVudGVycHJpc2VMb29rdXA6IHN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICAgICAgRW50ZXJwcmlzZToge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLkVhQy5FbnRlcnByaXNlLFxuICAgICAgICAgICAgICAgIC8vIFByaW1hcnlIb3N0OiBwcm9qZWN0LlByaW1hcnlIb3N0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEhvc3RzOiBwcm9qSG9zdHMsXG4gICAgICAgICAgICAvLyBQcm92aWRlcnM6IHN0YXRlLkVhQy5Qcm92aWRlcnMsICAvLyAgVE9ETzogIFJlbW92ZSBhZnRlciBhbGwgcHJvdmlkZXJzIEFEQjJDJ3MgaGF2ZSBiZWVuIHVwZ3JhZGVkXG4gICAgICAgICAgICBQcm9qZWN0czoge30sXG4gICAgICAgIH07XG5cbiAgICAgICAgc2F2ZUVhQy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHByb2plY3Q7XG5cbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NhdmUgZWFjIHJlcXVlc3Q6ICcsIHNhdmVFYUMpO1xuXG4gICAgICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBzYXZlRWFDXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5TZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXApO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTdWJqZWN0Lm5leHQoc3RhdGUpO1xuICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbn1cbiJdfQ==
@@ -1347,7 +1347,7 @@ class EaCService {
1347
1347
  });
1348
1348
  const saveEaC = {
1349
1349
  EnterpriseLookup: state.EaC.EnterpriseLookup,
1350
- Enterprise: Object.assign(Object.assign({}, state.EaC.Enterprise), { PrimaryHost: project.PrimaryHost }),
1350
+ Enterprise: Object.assign({}, state.EaC.Enterprise),
1351
1351
  Hosts: projHosts,
1352
1352
  // Providers: state.EaC.Providers, // TODO: Remove after all providers ADB2C's have been upgraded
1353
1353
  Projects: {},