testcafe 3.5.0 → 3.6.0
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/lib/api/test-controller/index.js +6 -1
- package/lib/browser/connection/index.js +4 -1
- package/lib/browser/provider/built-in/dedicated/chrome/build-chrome-args.js +4 -3
- package/lib/browser/provider/built-in/dedicated/chrome/index.js +6 -6
- package/lib/browser/provider/built-in/dedicated/chrome/local-chrome.js +2 -2
- package/lib/browser/provider/index.js +4 -1
- package/lib/browser/provider/plugin-host.js +4 -1
- package/lib/client/driver/index.js +1 -0
- package/lib/client/driver/index.min.js +1 -1
- package/lib/client/ui/index.js +1 -1
- package/lib/client/ui/index.min.js +1 -1
- package/lib/compiler/compilers.js +3 -3
- package/lib/compiler/esm-loader.js +2 -2
- package/lib/compiler/index.js +3 -3
- package/lib/native-automation/request-pipeline/index.js +11 -6
- package/lib/native-automation/resource-injector.js +7 -7
- package/lib/native-automation/utils/headers.js +6 -2
- package/lib/native-automation/utils/string.js +10 -7
- package/lib/screenshots/constants.js +2 -2
- package/lib/test-run/commands/actions.js +9 -2
- package/lib/test-run/commands/type.js +2 -1
- package/lib/test-run/index.js +6 -1
- package/package.json +9 -6
- package/ts-defs/index.d.ts +10 -0
- package/ts-defs/selectors.d.ts +10 -0
- package/ts-defs/testcafe-scripts.d.ts +10 -0
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ReportCommand = exports.RemoveRequestHooksCommand = exports.AddRequestHooksCommand = exports.RunCustomActionCommand = exports.SkipJsErrorsCommand = exports.GetProxyUrlCommand = exports.RequestCommand = exports.DeleteCookiesCommand = exports.SetCookiesCommand = exports.GetCookiesCommand = exports.RecorderCommand = exports.CloseChildWindowOnFileDownloading = exports.UseRoleCommand = exports.SetPageLoadTimeoutCommand = exports.SetTestSpeedCommand = exports.GetBrowserConsoleMessagesCommand = exports.GetNativeDialogHistoryCommand = exports.SetNativeDialogHandlerCommand = exports.SwitchToPreviousWindowCommand = exports.SwitchToParentWindowCommand = exports.SwitchToWindowByPredicateCommand = exports.SwitchToWindowCommand = exports.GetCurrentWindowsCommand = exports.GetCurrentWindowCommand = exports.CloseWindowCommand = exports.OpenWindowCommand = exports.SwitchToMainWindowCommand = exports.SwitchToIframeCommand = exports.ClearUploadCommand = exports.SetFilesToUploadCommand = exports.NavigateToCommand = exports.PressKeyCommand = exports.SelectTextAreaContentCommand = exports.SelectEditableContentCommand = exports.SelectTextCommand = exports.ScrollIntoViewCommand = exports.ScrollByCommand = exports.ScrollCommand = exports.DragToElementCommand = exports.DragCommand = exports.TypeTextCommand = exports.HoverCommand = exports.DoubleClickCommand = exports.ExecuteAsyncExpressionCommand = exports.ExecuteExpressionCommand = exports.RightClickCommand = exports.ClickCommand = exports.DispatchEventCommand = void 0;
|
|
6
|
+
exports.ReportCommand = exports.RemoveRequestHooksCommand = exports.AddRequestHooksCommand = exports.RunCustomActionCommand = exports.SkipJsErrorsCommand = exports.GetProxyUrlCommand = exports.RequestCommand = exports.DeleteCookiesCommand = exports.SetCookiesCommand = exports.GetCookiesCommand = exports.RecorderCommand = exports.CloseChildWindowOnFileDownloading = exports.UseRoleCommand = exports.SetPageLoadTimeoutCommand = exports.SetTestSpeedCommand = exports.GetBrowserConsoleMessagesCommand = exports.GetNativeDialogHistoryCommand = exports.SetNativeDialogHandlerCommand = exports.SwitchToPreviousWindowCommand = exports.SwitchToParentWindowCommand = exports.SwitchToWindowByPredicateCommand = exports.SwitchToWindowCommand = exports.GetCurrentCDPSessionCommand = exports.GetCurrentWindowsCommand = exports.GetCurrentWindowCommand = exports.CloseWindowCommand = exports.OpenWindowCommand = exports.SwitchToMainWindowCommand = exports.SwitchToIframeCommand = exports.ClearUploadCommand = exports.SetFilesToUploadCommand = exports.NavigateToCommand = exports.PressKeyCommand = exports.SelectTextAreaContentCommand = exports.SelectEditableContentCommand = exports.SelectTextCommand = exports.ScrollIntoViewCommand = exports.ScrollByCommand = exports.ScrollCommand = exports.DragToElementCommand = exports.DragCommand = exports.TypeTextCommand = exports.HoverCommand = exports.DoubleClickCommand = exports.ExecuteAsyncExpressionCommand = exports.ExecuteExpressionCommand = exports.RightClickCommand = exports.ClickCommand = exports.DispatchEventCommand = void 0;
|
|
7
7
|
const type_1 = __importDefault(require("./type"));
|
|
8
8
|
const selector_builder_1 = __importDefault(require("../../client-functions/selectors/selector-builder"));
|
|
9
9
|
const client_function_builder_1 = __importDefault(require("../../client-functions/client-function-builder"));
|
|
@@ -414,6 +414,13 @@ class GetCurrentWindowsCommand extends base_1.ActionCommandBase {
|
|
|
414
414
|
}
|
|
415
415
|
exports.GetCurrentWindowsCommand = GetCurrentWindowsCommand;
|
|
416
416
|
GetCurrentWindowsCommand.methodName = (0, lodash_1.camelCase)(type_1.default.getCurrentWindows);
|
|
417
|
+
class GetCurrentCDPSessionCommand extends base_1.ActionCommandBase {
|
|
418
|
+
constructor(obj, testRun, validateProperties) {
|
|
419
|
+
super(obj, testRun, type_1.default.getCurrentCDPSession, validateProperties);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
exports.GetCurrentCDPSessionCommand = GetCurrentCDPSessionCommand;
|
|
423
|
+
GetCurrentCDPSessionCommand.methodName = (0, lodash_1.camelCase)(type_1.default.getCurrentCDPSession);
|
|
417
424
|
class SwitchToWindowCommand extends base_1.ActionCommandBase {
|
|
418
425
|
constructor(obj, testRun, validateProperties) {
|
|
419
426
|
super(obj, testRun, type_1.default.switchToWindow, validateProperties);
|
|
@@ -674,4 +681,4 @@ class ReportCommand extends base_1.ActionCommandBase {
|
|
|
674
681
|
}
|
|
675
682
|
exports.ReportCommand = ReportCommand;
|
|
676
683
|
ReportCommand.methodName = (0, lodash_1.camelCase)(type_1.default.report);
|
|
677
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0LXJ1bi9jb21tYW5kcy9hY3Rpb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQix5R0FBZ0Y7QUFDaEYsNkdBQW1GO0FBQ25GLDJGQUEwRTtBQUMxRSxpQ0FBd0Q7QUFDeEQsdUNBYW1CO0FBRW5CLDZEQUlvQztBQUNwQyxvRUFBK0Q7QUFDL0QsbUNBQXlDO0FBRXpDLHFEQW1CZ0M7QUFFaEMsb0RBQWlGO0FBQ2pGLHVFQUF5RTtBQUN6RSxtQ0FBbUM7QUFDbkMsNkRBSWtDO0FBR2xDLGVBQWU7QUFDZixTQUFTLGlCQUFpQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsR0FBRyxJQUFJO0lBQy9ELE9BQU8sSUFBSSx1QkFBYSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxRQUFRLEdBQUcsSUFBSTtJQUM5RCxPQUFPLElBQUksc0JBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxHQUFHLElBQUk7SUFDOUQsT0FBTyxJQUFJLHNCQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsR0FBRyxJQUFJO0lBQy9ELE9BQU8sSUFBSSx1QkFBYSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFB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QjtRQUNuQixPQUFPO1lBQ0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSwrQkFBb0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ2hFLENBQUM7SUFDTixDQUFDOztBQVhMLDhEQVlDO0FBWFUsb0NBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFhM0QsTUFBYSxhQUFjLFNBQVEsd0JBQWlCO0lBR2hELFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxrQkFBa0I7UUFDekMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTztZQUNILEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ25DLENBQUM7SUFDTixDQUFDOztBQVhMLHNDQVlDO0FBWFUsd0JBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcbmltcG9ydCBTZWxlY3RvckJ1aWxkZXIgZnJvbSAnLi4vLi4vY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3RvcnMvc2VsZWN0b3ItYnVpbGRlcic7XG5pbXBvcnQgQ2xpZW50RnVuY3Rpb25CdWlsZGVyIGZyb20gJy4uLy4uL2NsaWVudC1mdW5jdGlvbnMvY2xpZW50LWZ1bmN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IGZ1bmN0aW9uQnVpbGRlclN5bWJvbCBmcm9tICcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL2J1aWxkZXItc3ltYm9sJztcbmltcG9ydCB7IEFjdGlvbkNvbW1hbmRCYXNlLCBDb21tYW5kQmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge1xuICAgIEFjdGlvbk9wdGlvbnMsXG4gICAgQ2xpY2tPcHRpb25zLFxuICAgIE1vdXNlT3B0aW9ucyxcbiAgICBUeXBlT3B0aW9ucyxcbiAgICBQcmVzc09wdGlvbnMsXG4gICAgRHJhZ1RvRWxlbWVudE9wdGlvbnMsXG4gICAgT2Zmc2V0T3B0aW9ucyxcbiAgICBDb29raWVPcHRpb25zLFxuICAgIEdldFByb3h5VXJsT3B0aW9ucyxcbiAgICBSZXF1ZXN0T3B0aW9ucyxcbiAgICBTa2lwSnNFcnJvcnNPcHRpb25zLFxuICAgIFNraXBKc0Vycm9yc0NhbGxiYWNrV2l0aE9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucyc7XG5cbmltcG9ydCB7XG4gICAgaW5pdFNlbGVjdG9yLFxuICAgIGluaXRUeXBlU2VsZWN0b3IsXG4gICAgaW5pdFVwbG9hZFNlbGVjdG9yLFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2luaXRpYWxpemVycyc7XG5pbXBvcnQgeyBleGVjdXRlSnNFeHByZXNzaW9uIH0gZnJvbSAnLi4vZXhlY3V0ZS1qcy1leHByZXNzaW9uJztcbmltcG9ydCB7IGlzSlNFeHByZXNzaW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmltcG9ydCB7XG4gICAgYWN0aW9uT3B0aW9ucyxcbiAgICBpbnRlZ2VyQXJndW1lbnQsXG4gICAgcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsXG4gICAgc3RyaW5nQXJndW1lbnQsXG4gICAgbm9uRW1wdHlTdHJpbmdBcmd1bWVudCxcbiAgICBudWxsYWJsZVN0cmluZ0FyZ3VtZW50LFxuICAgIHBhZ2VVcmxBcmd1bWVudCxcbiAgICBzdHJpbmdPclN0cmluZ0FycmF5QXJndW1lbnQsXG4gICAgc2V0U3BlZWRBcmd1bWVudCxcbiAgICBhY3Rpb25Sb2xlQXJndW1lbnQsXG4gICAgYm9vbGVhbkFyZ3VtZW50LFxuICAgIGZ1bmN0aW9uQXJndW1lbnQsXG4gICAgY29va2llc0FyZ3VtZW50LFxuICAgIHNldENvb2tpZXNBcmd1bWVudCxcbiAgICB1cmxzQXJndW1lbnQsXG4gICAgdXJsQXJndW1lbnQsXG4gICAgc2tpcEpzRXJyb3JPcHRpb25zLFxuICAgIHJlcXVlc3RIb29rc0FyZ3VtZW50LFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2FyZ3VtZW50JztcblxuaW1wb3J0IHsgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvZGVXcm9uZ1R5cGVFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycy90ZXN0LXJ1bic7XG5pbXBvcnQgeyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kIH0gZnJvbSAnLi9leGVjdXRlLWNsaWVudC1mdW5jdGlvbic7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgICBwcmVwYXJlU2tpcEpzRXJyb3JzT3B0aW9ucyxcbiAgICBpc1NraXBKc0Vycm9yc09wdGlvbnNPYmplY3QsXG4gICAgaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0LFxufSBmcm9tICcuLi8uLi9hcGkvc2tpcC1qcy1lcnJvcnMnO1xuXG5cbi8vIEluaXRpYWxpemVyc1xuZnVuY3Rpb24gaW5pdEFjdGlvbk9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgQWN0aW9uT3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdENsaWNrT3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBDbGlja09wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXRNb3VzZU9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgTW91c2VPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0T2Zmc2V0T3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBPZmZzZXRPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0VHlwZU9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgVHlwZU9wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREcmFnVG9FbGVtZW50T3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBEcmFnVG9FbGVtZW50T3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdFByZXNzT3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBQcmVzc09wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREaWFsb2dIYW5kbGVyIChuYW1lLCB2YWwsIHsgc2tpcFZpc2liaWxpdHlDaGVjaywgdGVzdFJ1biB9KSB7XG4gICAgbGV0IGZuO1xuXG4gICAgaWYgKGlzSlNFeHByZXNzaW9uKHZhbCkpXG4gICAgICAgIGZuID0gZXhlY3V0ZUpzRXhwcmVzc2lvbih2YWwudmFsdWUsIHRlc3RSdW4sIHsgc2tpcFZpc2liaWxpdHlDaGVjayB9KTtcbiAgICBlbHNlXG4gICAgICAgIGZuID0gdmFsLmZuO1xuXG4gICAgaWYgKGZuID09PSBudWxsIHx8IGZuIGluc3RhbmNlb2YgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZClcbiAgICAgICAgcmV0dXJuIGZuO1xuXG4gICAgY29uc3Qgb3B0aW9ucyAgICAgID0gdmFsLm9wdGlvbnM7XG4gICAgY29uc3QgbWV0aG9kTmFtZSAgID0gJ3NldE5hdGl2ZURpYWxvZ0hhbmRsZXInO1xuICAgIGNvbnN0IGZ1bmN0aW9uVHlwZSA9IHR5cGVvZiBmbjtcblxuICAgIGxldCBidWlsZGVyID0gZm4gJiYgZm5bZnVuY3Rpb25CdWlsZGVyU3ltYm9sXTtcblxuICAgIGNvbnN0IGlzU2VsZWN0b3IgICAgICAgPSBidWlsZGVyIGluc3RhbmNlb2YgU2VsZWN0b3JCdWlsZGVyO1xuICAgIGNvbnN0IGlzQ2xpZW50RnVuY3Rpb24gPSBidWlsZGVyIGluc3RhbmNlb2YgQ2xpZW50RnVuY3Rpb25CdWlsZGVyO1xuXG4gICAgaWYgKGZ1bmN0aW9uVHlwZSAhPT0gJ2Z1bmN0aW9uJyB8fCBpc1NlbGVjdG9yKVxuICAgICAgICB0aHJvdyBuZXcgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvZGVXcm9uZ1R5cGVFcnJvcihpc1NlbGVjdG9yID8gJ1NlbGVjdG9yJyA6IGZ1bmN0aW9uVHlwZSk7XG5cbiAgICBpZiAoaXNDbGllbnRGdW5jdGlvbilcbiAgICAgICAgYnVpbGRlciA9IGZuLndpdGgob3B0aW9ucylbZnVuY3Rpb25CdWlsZGVyU3ltYm9sXTtcbiAgICBlbHNlXG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgQ2xpZW50RnVuY3Rpb25CdWlsZGVyKGZuLCBvcHRpb25zLCB7IGluc3RhbnRpYXRpb246IG1ldGhvZE5hbWUsIGV4ZWN1dGlvbjogbWV0aG9kTmFtZSB9KTtcblxuICAgIHJldHVybiBidWlsZGVyLmdldENvbW1hbmQoKTtcbn1cblxuZnVuY3Rpb24gaW5pdENvb2tpZXNPcHRpb24gKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiB2YWwubWFwKGNvb2tpZSA9PiBuZXcgQ29va2llT3B0aW9ucyhjb29raWUsIHZhbGlkYXRlKSk7XG59XG5cbmZ1bmN0aW9uIGluaXRSZXF1ZXN0T3B0aW9uIChuYW1lLCB2YWwsIGluaXRPcHRpb25zLCB2YWxpZGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3RPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0R2V0UHJveHlVcmxPcHRpb25zIChuYW1lLCB2YWwsIGluaXRPcHRpb25zLCB2YWxpZGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gbmV3IEdldFByb3h5VXJsT3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdFNraXBKc0Vycm9yc09wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIGlmICh2YWwgPT09IHZvaWQgMClcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0KHZhbCkpXG4gICAgICAgIHZhbCA9IG5ldyBTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xuXG4gICAgZWxzZSBpZiAoaXNTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0KHZhbCkpXG4gICAgICAgIHZhbCA9IG5ldyBTa2lwSnNFcnJvcnNPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xuXG4gICAgcmV0dXJuIHByZXBhcmVTa2lwSnNFcnJvcnNPcHRpb25zKHZhbCk7XG59XG5cbi8vIENvbW1hbmRzXG5leHBvcnQgY2xhc3MgRGlzcGF0Y2hFdmVudENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5kaXNwYXRjaEV2ZW50KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZGlzcGF0Y2hFdmVudCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2V2ZW50TmFtZScsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAncmVsYXRlZFRhcmdldCcsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuY2xpY2spO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5jbGljaywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0Q2xpY2tPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpZ2h0Q2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucmlnaHRDbGljayk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnJpZ2h0Q2xpY2ssIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdENsaWNrT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRlRXhwcmVzc2lvbkNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kQmFzZSB7XG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5leGVjdXRlRXhwcmVzc2lvbiwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdleHByZXNzaW9uJywgdHlwZTogbm9uRW1wdHlTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3Jlc3VsdFZhcmlhYmxlTmFtZScsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVBc3luY0V4cHJlc3Npb25Db21tYW5kIGV4dGVuZHMgQ29tbWFuZEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZXhlY3V0ZUFzeW5jRXhwcmVzc2lvbiwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdleHByZXNzaW9uJywgdHlwZTogc3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRG91YmxlQ2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZG91YmxlQ2xpY2spO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5kb3VibGVDbGljaywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0Q2xpY2tPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhvdmVyQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmhvdmVyKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuaG92ZXIsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdE1vdXNlT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlVGV4dENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS50eXBlVGV4dCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnR5cGVUZXh0LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFR5cGVTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RleHQnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRUeXBlT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEcmFnQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmRyYWcpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5kcmFnLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZHJhZ09mZnNldFgnLCB0eXBlOiBpbnRlZ2VyQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkcmFnT2Zmc2V0WScsIHR5cGU6IGludGVnZXJBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0TW91c2VPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWdUb0VsZW1lbnRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZHJhZ1RvRWxlbWVudCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmRyYWdUb0VsZW1lbnQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXN0aW5hdGlvblNlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXREcmFnVG9FbGVtZW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2Nyb2xsKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2Nyb2xsLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3Bvc2l0aW9uJywgdHlwZTogbnVsbGFibGVTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICd4JywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAneScsIHR5cGU6IHBvc2l0aXZlSW50ZWdlckFyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0T2Zmc2V0T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxCeUNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zY3JvbGxCeSk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNjcm9sbEJ5LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2J5WCcsIHR5cGU6IGludGVnZXJBcmd1bWVudCwgZGVmYXVsdFZhbHVlOiAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdieVknLCB0eXBlOiBpbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogMCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRPZmZzZXRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNjcm9sbEludG9WaWV3KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2Nyb2xsSW50b1ZpZXcsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdE9mZnNldE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0VGV4dENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZWxlY3RUZXh0KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2VsZWN0VGV4dCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXJ0UG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZW5kUG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRBY3Rpb25PcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdEVkaXRhYmxlQ29udGVudENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZWxlY3RFZGl0YWJsZUNvbnRlbnQpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zZWxlY3RFZGl0YWJsZUNvbnRlbnQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRTZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2VuZFNlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0QWN0aW9uT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RUZXh0QXJlYUNvbnRlbnRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2VsZWN0VGV4dEFyZWFDb250ZW50KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2VsZWN0VGV4dEFyZWFDb250ZW50LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRMaW5lJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRQb3MnLCB0eXBlOiBwb3NpdGl2ZUludGVnZXJBcmd1bWVudCwgZGVmYXVsdFZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmRMaW5lJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZW5kUG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRBY3Rpb25PcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByZXNzS2V5Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnByZXNzS2V5KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucHJlc3NLZXksIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAna2V5cycsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdFByZXNzT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0ZVRvQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLm5hdmlnYXRlVG8pO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5uYXZpZ2F0ZVRvLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3VybCcsIHR5cGU6IHBhZ2VVcmxBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXRlU25hcHNob3QnLCB0eXBlOiBudWxsYWJsZVN0cmluZ0FyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZvcmNlUmVsb2FkJywgdHlwZTogYm9vbGVhbkFyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0RmlsZXNUb1VwbG9hZENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZXRGaWxlc1RvVXBsb2FkKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2V0RmlsZXNUb1VwbG9hZCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRVcGxvYWRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVQYXRoJywgdHlwZTogc3RyaW5nT3JTdHJpbmdBcnJheUFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyVXBsb2FkQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmNsZWFyVXBsb2FkKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuY2xlYXJVcGxvYWQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0VXBsb2FkU2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoVG9JZnJhbWVDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9JZnJhbWUpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zd2l0Y2hUb0lmcmFtZSwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2l0Y2hUb01haW5XaW5kb3dDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9NYWluV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50eXBlID0gVFlQRS5zd2l0Y2hUb01haW5XaW5kb3c7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3BlbldpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5vcGVuV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUub3BlbldpbmRvdywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd1cmwnLCB0eXBlOiBwYWdlVXJsQXJndW1lbnQgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbG9zZVdpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5jbG9zZVdpbmRvdyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmNsb3NlV2luZG93LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3dpbmRvd0lkJywgdHlwZTogbnVsbGFibGVTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEdldEN1cnJlbnRXaW5kb3dDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0Q3VycmVudFdpbmRvdyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmdldEN1cnJlbnRXaW5kb3csIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0Q3VycmVudFdpbmRvd3NDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0Q3VycmVudFdpbmRvd3MpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5nZXRDdXJyZW50V2luZG93cywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2l0Y2hUb1dpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zd2l0Y2hUb1dpbmRvdyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnN3aXRjaFRvV2luZG93LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3dpbmRvd0lkJywgdHlwZTogbm9uRW1wdHlTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2l0Y2hUb1dpbmRvd0J5UHJlZGljYXRlQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnN3aXRjaFRvV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc3dpdGNoVG9XaW5kb3dCeVByZWRpY2F0ZSwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdpZCcsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnY2hlY2tXaW5kb3cnLCB0eXBlOiBmdW5jdGlvbkFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN3aXRjaFRvUGFyZW50V2luZG93Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnN3aXRjaFRvUGFyZW50V2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc3dpdGNoVG9QYXJlbnRXaW5kb3csIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoVG9QcmV2aW91c1dpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zd2l0Y2hUb1ByZXZpb3VzV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc3dpdGNoVG9QcmV2aW91c1dpbmRvdywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXROYXRpdmVEaWFsb2dIYW5kbGVyQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNldE5hdGl2ZURpYWxvZ0hhbmRsZXIpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zZXROYXRpdmVEaWFsb2dIYW5kbGVyLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2RpYWxvZ0hhbmRsZXInLCBpbml0OiBpbml0RGlhbG9nSGFuZGxlciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZnJvbSAodmFsKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ0hhbmRsZXJTdHViID0ge1xuICAgICAgICAgICAgZGlhbG9nSGFuZGxlcjogeyBmbjogbnVsbCB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvbW1hbmQoZGlhbG9nSGFuZGxlclN0dWIpO1xuXG4gICAgICAgIGNvbW1hbmQuZGlhbG9nSGFuZGxlciA9IHZhbC5kaWFsb2dIYW5kbGVyO1xuXG4gICAgICAgIHJldHVybiBjb21tYW5kO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldE5hdGl2ZURpYWxvZ0hpc3RvcnlDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0TmF0aXZlRGlhbG9nSGlzdG9yeSk7XG5cbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudHlwZSA9IFRZUEUuZ2V0TmF0aXZlRGlhbG9nSGlzdG9yeTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRCcm93c2VyQ29uc29sZU1lc3NhZ2VzQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmdldEJyb3dzZXJDb25zb2xlTWVzc2FnZXMpO1xuXG4gICAgY29uc3RydWN0b3IgKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnR5cGUgPSBUWVBFLmdldEJyb3dzZXJDb25zb2xlTWVzc2FnZXM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0VGVzdFNwZWVkQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNldFRlc3RTcGVlZCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNldFRlc3RTcGVlZCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzcGVlZCcsIHR5cGU6IHNldFNwZWVkQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0UGFnZUxvYWRUaW1lb3V0Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNldFBhZ2VMb2FkVGltZW91dCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNldFBhZ2VMb2FkVGltZW91dCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkdXJhdGlvbicsIHR5cGU6IHBvc2l0aXZlSW50ZWdlckFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZVJvbGVDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUudXNlUm9sZSk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnVzZVJvbGUsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAncm9sZScsIHR5cGU6IGFjdGlvblJvbGVBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbG9zZUNoaWxkV2luZG93T25GaWxlRG93bmxvYWRpbmcgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5jbG9zZUNoaWxkV2luZG93T25GaWxlRG93bmxvYWRpbmcpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5jbG9zZUNoaWxkV2luZG93T25GaWxlRG93bmxvYWRpbmcsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVjb3JkZXJDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucmVjb3JkZXIpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1bikge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucmVjb3JkZXIpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3N1YnR5cGUnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZm9yY2VFeGVjdXRpb25JblRvcFdpbmRvd09ubHknLCB0eXBlOiBib29sZWFuQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRDb29raWVzQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmdldENvb2tpZXMpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5nZXRDb29raWVzLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3VybHMnLCB0eXBlOiB1cmxzQXJndW1lbnQsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnY29va2llcycsIHR5cGU6IGNvb2tpZXNBcmd1bWVudCwgaW5pdDogaW5pdENvb2tpZXNPcHRpb24sIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldENvb2tpZXNDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2V0Q29va2llcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNldENvb2tpZXMsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndXJsJywgdHlwZTogdXJsc0FyZ3VtZW50LCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2Nvb2tpZXMnLCB0eXBlOiBzZXRDb29raWVzQXJndW1lbnQsIGluaXQ6IGluaXRDb29raWVzT3B0aW9uLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUNvb2tpZXNDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZGVsZXRlQ29va2llcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmRlbGV0ZUNvb2tpZXMsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndXJscycsIHR5cGU6IHVybHNBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjb29raWVzJywgdHlwZTogY29va2llc0FyZ3VtZW50LCBpbml0OiBpbml0Q29va2llc09wdGlvbiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVxdWVzdENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5yZXF1ZXN0KTtcbiAgICBzdGF0aWMgZXh0ZW5kZWRNZXRob2RzID0gWydnZXQnLCAncG9zdCcsICdkZWxldGUnLCAncHV0JywgJ3BhdGNoJywgJ2hlYWQnXTtcbiAgICBzdGF0aWMgcmVzdWx0R2V0dGVycyA9IFsnc3RhdHVzJywgJ3N0YXR1c1RleHQnLCAnaGVhZGVycycsICdib2R5J107XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnJlcXVlc3QsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndXJsJywgdHlwZTogdXJsQXJndW1lbnQsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRSZXF1ZXN0T3B0aW9uLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRQcm94eVVybENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5nZXRQcm94eVVybCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmdldFByb3h5VXJsLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3VybCcsIHR5cGU6IHVybEFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIGluaXQ6IGluaXRHZXRQcm94eVVybE9wdGlvbnMsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNraXBKc0Vycm9yc0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5za2lwSnNFcnJvcnMpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5za2lwSnNFcnJvcnMsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IHNraXBKc0Vycm9yT3B0aW9ucywgaW5pdDogaW5pdFNraXBKc0Vycm9yc09wdGlvbnMsIHJlcXVpcmVkOiBmYWxzZSwgZGVmYXVsdFZhbHVlOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUnVuQ3VzdG9tQWN0aW9uQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnJ1bkN1c3RvbUFjdGlvbik7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnJ1bkN1c3RvbUFjdGlvbiwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdmbicsIHR5cGU6IGZ1bmN0aW9uQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICduYW1lJywgdHlwZTogc3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdhcmdzJywgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkUmVxdWVzdEhvb2tzQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmFkZFJlcXVlc3RIb29rcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmFkZFJlcXVlc3RIb29rcywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdob29rcycsIHR5cGU6IHJlcXVlc3RIb29rc0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZVJlcXVlc3RIb29rc0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5yZW1vdmVSZXF1ZXN0SG9va3MpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5yZW1vdmVSZXF1ZXN0SG9va3MsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnaG9va3MnLCB0eXBlOiByZXF1ZXN0SG9va3NBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBvcnRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucmVwb3J0KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucmVwb3J0LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2FyZ3MnLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cbiJdfQ==
|
|
684
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0LXJ1bi9jb21tYW5kcy9hY3Rpb25zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQix5R0FBZ0Y7QUFDaEYsNkdBQW1GO0FBQ25GLDJGQUEwRTtBQUMxRSxpQ0FBd0Q7QUFDeEQsdUNBYW1CO0FBRW5CLDZEQUlvQztBQUNwQyxvRUFBK0Q7QUFDL0QsbUNBQXlDO0FBRXpDLHFEQW1CZ0M7QUFFaEMsb0RBQWlGO0FBQ2pGLHVFQUF5RTtBQUN6RSxtQ0FBbUM7QUFDbkMsNkRBSWtDO0FBR2xDLGVBQWU7QUFDZixTQUFTLGlCQUFpQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsR0FBRyxJQUFJO0lBQy9ELE9BQU8sSUFBSSx1QkFBYSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxRQUFRLEdBQUcsSUFBSTtJQUM5RCxPQUFPLElBQUksc0JBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxHQUFHLElBQUk7SUFDOUQsT0FBTyxJQUFJLHNCQUFZLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsR0FBRyxJQUFJO0lBQy9ELE9BQU8sSUFBSSx1QkFBYSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFB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QVlDO0FBWFUsaUNBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBYXhELE1BQWEseUJBQTBCLFNBQVEsd0JBQWlCO0lBRzVELFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxrQkFBa0I7UUFDekMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixPQUFPO1lBQ0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSwrQkFBb0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ2hFLENBQUM7SUFDTixDQUFDOztBQVhMLDhEQVlDO0FBWFUsb0NBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFhM0QsTUFBYSxhQUFjLFNBQVEsd0JBQWlCO0lBR2hELFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxrQkFBa0I7UUFDekMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsY0FBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTztZQUNILEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ25DLENBQUM7SUFDTixDQUFDOztBQVhMLHNDQVlDO0FBWFUsd0JBQVUsR0FBRyxJQUFBLGtCQUFTLEVBQUMsY0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRZUEUgZnJvbSAnLi90eXBlJztcbmltcG9ydCBTZWxlY3RvckJ1aWxkZXIgZnJvbSAnLi4vLi4vY2xpZW50LWZ1bmN0aW9ucy9zZWxlY3RvcnMvc2VsZWN0b3ItYnVpbGRlcic7XG5pbXBvcnQgQ2xpZW50RnVuY3Rpb25CdWlsZGVyIGZyb20gJy4uLy4uL2NsaWVudC1mdW5jdGlvbnMvY2xpZW50LWZ1bmN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IGZ1bmN0aW9uQnVpbGRlclN5bWJvbCBmcm9tICcuLi8uLi9jbGllbnQtZnVuY3Rpb25zL2J1aWxkZXItc3ltYm9sJztcbmltcG9ydCB7IEFjdGlvbkNvbW1hbmRCYXNlLCBDb21tYW5kQmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge1xuICAgIEFjdGlvbk9wdGlvbnMsXG4gICAgQ2xpY2tPcHRpb25zLFxuICAgIE1vdXNlT3B0aW9ucyxcbiAgICBUeXBlT3B0aW9ucyxcbiAgICBQcmVzc09wdGlvbnMsXG4gICAgRHJhZ1RvRWxlbWVudE9wdGlvbnMsXG4gICAgT2Zmc2V0T3B0aW9ucyxcbiAgICBDb29raWVPcHRpb25zLFxuICAgIEdldFByb3h5VXJsT3B0aW9ucyxcbiAgICBSZXF1ZXN0T3B0aW9ucyxcbiAgICBTa2lwSnNFcnJvcnNPcHRpb25zLFxuICAgIFNraXBKc0Vycm9yc0NhbGxiYWNrV2l0aE9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucyc7XG5cbmltcG9ydCB7XG4gICAgaW5pdFNlbGVjdG9yLFxuICAgIGluaXRUeXBlU2VsZWN0b3IsXG4gICAgaW5pdFVwbG9hZFNlbGVjdG9yLFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2luaXRpYWxpemVycyc7XG5pbXBvcnQgeyBleGVjdXRlSnNFeHByZXNzaW9uIH0gZnJvbSAnLi4vZXhlY3V0ZS1qcy1leHByZXNzaW9uJztcbmltcG9ydCB7IGlzSlNFeHByZXNzaW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmltcG9ydCB7XG4gICAgYWN0aW9uT3B0aW9ucyxcbiAgICBpbnRlZ2VyQXJndW1lbnQsXG4gICAgcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsXG4gICAgc3RyaW5nQXJndW1lbnQsXG4gICAgbm9uRW1wdHlTdHJpbmdBcmd1bWVudCxcbiAgICBudWxsYWJsZVN0cmluZ0FyZ3VtZW50LFxuICAgIHBhZ2VVcmxBcmd1bWVudCxcbiAgICBzdHJpbmdPclN0cmluZ0FycmF5QXJndW1lbnQsXG4gICAgc2V0U3BlZWRBcmd1bWVudCxcbiAgICBhY3Rpb25Sb2xlQXJndW1lbnQsXG4gICAgYm9vbGVhbkFyZ3VtZW50LFxuICAgIGZ1bmN0aW9uQXJndW1lbnQsXG4gICAgY29va2llc0FyZ3VtZW50LFxuICAgIHNldENvb2tpZXNBcmd1bWVudCxcbiAgICB1cmxzQXJndW1lbnQsXG4gICAgdXJsQXJndW1lbnQsXG4gICAgc2tpcEpzRXJyb3JPcHRpb25zLFxuICAgIHJlcXVlc3RIb29rc0FyZ3VtZW50LFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2FyZ3VtZW50JztcblxuaW1wb3J0IHsgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvZGVXcm9uZ1R5cGVFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycy90ZXN0LXJ1bic7XG5pbXBvcnQgeyBFeGVjdXRlQ2xpZW50RnVuY3Rpb25Db21tYW5kIH0gZnJvbSAnLi9leGVjdXRlLWNsaWVudC1mdW5jdGlvbic7XG5pbXBvcnQgeyBjYW1lbENhc2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgICBwcmVwYXJlU2tpcEpzRXJyb3JzT3B0aW9ucyxcbiAgICBpc1NraXBKc0Vycm9yc09wdGlvbnNPYmplY3QsXG4gICAgaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0LFxufSBmcm9tICcuLi8uLi9hcGkvc2tpcC1qcy1lcnJvcnMnO1xuXG5cbi8vIEluaXRpYWxpemVyc1xuZnVuY3Rpb24gaW5pdEFjdGlvbk9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgQWN0aW9uT3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdENsaWNrT3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBDbGlja09wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXRNb3VzZU9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgTW91c2VPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0T2Zmc2V0T3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBPZmZzZXRPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0VHlwZU9wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiBuZXcgVHlwZU9wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREcmFnVG9FbGVtZW50T3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBEcmFnVG9FbGVtZW50T3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdFByZXNzT3B0aW9ucyAobmFtZSwgdmFsLCBpbml0T3B0aW9ucywgdmFsaWRhdGUgPSB0cnVlKSB7XG4gICAgcmV0dXJuIG5ldyBQcmVzc09wdGlvbnModmFsLCB2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREaWFsb2dIYW5kbGVyIChuYW1lLCB2YWwsIHsgc2tpcFZpc2liaWxpdHlDaGVjaywgdGVzdFJ1biB9KSB7XG4gICAgbGV0IGZuO1xuXG4gICAgaWYgKGlzSlNFeHByZXNzaW9uKHZhbCkpXG4gICAgICAgIGZuID0gZXhlY3V0ZUpzRXhwcmVzc2lvbih2YWwudmFsdWUsIHRlc3RSdW4sIHsgc2tpcFZpc2liaWxpdHlDaGVjayB9KTtcbiAgICBlbHNlXG4gICAgICAgIGZuID0gdmFsLmZuO1xuXG4gICAgaWYgKGZuID09PSBudWxsIHx8IGZuIGluc3RhbmNlb2YgRXhlY3V0ZUNsaWVudEZ1bmN0aW9uQ29tbWFuZClcbiAgICAgICAgcmV0dXJuIGZuO1xuXG4gICAgY29uc3Qgb3B0aW9ucyAgICAgID0gdmFsLm9wdGlvbnM7XG4gICAgY29uc3QgbWV0aG9kTmFtZSAgID0gJ3NldE5hdGl2ZURpYWxvZ0hhbmRsZXInO1xuICAgIGNvbnN0IGZ1bmN0aW9uVHlwZSA9IHR5cGVvZiBmbjtcblxuICAgIGxldCBidWlsZGVyID0gZm4gJiYgZm5bZnVuY3Rpb25CdWlsZGVyU3ltYm9sXTtcblxuICAgIGNvbnN0IGlzU2VsZWN0b3IgICAgICAgPSBidWlsZGVyIGluc3RhbmNlb2YgU2VsZWN0b3JCdWlsZGVyO1xuICAgIGNvbnN0IGlzQ2xpZW50RnVuY3Rpb24gPSBidWlsZGVyIGluc3RhbmNlb2YgQ2xpZW50RnVuY3Rpb25CdWlsZGVyO1xuXG4gICAgaWYgKGZ1bmN0aW9uVHlwZSAhPT0gJ2Z1bmN0aW9uJyB8fCBpc1NlbGVjdG9yKVxuICAgICAgICB0aHJvdyBuZXcgU2V0TmF0aXZlRGlhbG9nSGFuZGxlckNvZGVXcm9uZ1R5cGVFcnJvcihpc1NlbGVjdG9yID8gJ1NlbGVjdG9yJyA6IGZ1bmN0aW9uVHlwZSk7XG5cbiAgICBpZiAoaXNDbGllbnRGdW5jdGlvbilcbiAgICAgICAgYnVpbGRlciA9IGZuLndpdGgob3B0aW9ucylbZnVuY3Rpb25CdWlsZGVyU3ltYm9sXTtcbiAgICBlbHNlXG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgQ2xpZW50RnVuY3Rpb25CdWlsZGVyKGZuLCBvcHRpb25zLCB7IGluc3RhbnRpYXRpb246IG1ldGhvZE5hbWUsIGV4ZWN1dGlvbjogbWV0aG9kTmFtZSB9KTtcblxuICAgIHJldHVybiBidWlsZGVyLmdldENvbW1hbmQoKTtcbn1cblxuZnVuY3Rpb24gaW5pdENvb2tpZXNPcHRpb24gKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiB2YWwubWFwKGNvb2tpZSA9PiBuZXcgQ29va2llT3B0aW9ucyhjb29raWUsIHZhbGlkYXRlKSk7XG59XG5cbmZ1bmN0aW9uIGluaXRSZXF1ZXN0T3B0aW9uIChuYW1lLCB2YWwsIGluaXRPcHRpb25zLCB2YWxpZGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gbmV3IFJlcXVlc3RPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBpbml0R2V0UHJveHlVcmxPcHRpb25zIChuYW1lLCB2YWwsIGluaXRPcHRpb25zLCB2YWxpZGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gbmV3IEdldFByb3h5VXJsT3B0aW9ucyh2YWwsIHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gaW5pdFNraXBKc0Vycm9yc09wdGlvbnMgKG5hbWUsIHZhbCwgaW5pdE9wdGlvbnMsIHZhbGlkYXRlID0gdHJ1ZSkge1xuICAgIGlmICh2YWwgPT09IHZvaWQgMClcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAoaXNTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zT2JqZWN0KHZhbCkpXG4gICAgICAgIHZhbCA9IG5ldyBTa2lwSnNFcnJvcnNDYWxsYmFja1dpdGhPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xuXG4gICAgZWxzZSBpZiAoaXNTa2lwSnNFcnJvcnNPcHRpb25zT2JqZWN0KHZhbCkpXG4gICAgICAgIHZhbCA9IG5ldyBTa2lwSnNFcnJvcnNPcHRpb25zKHZhbCwgdmFsaWRhdGUpO1xuXG4gICAgcmV0dXJuIHByZXBhcmVTa2lwSnNFcnJvcnNPcHRpb25zKHZhbCk7XG59XG5cbi8vIENvbW1hbmRzXG5leHBvcnQgY2xhc3MgRGlzcGF0Y2hFdmVudENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5kaXNwYXRjaEV2ZW50KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZGlzcGF0Y2hFdmVudCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2V2ZW50TmFtZScsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAncmVsYXRlZFRhcmdldCcsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuY2xpY2spO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5jbGljaywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0Q2xpY2tPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJpZ2h0Q2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucmlnaHRDbGljayk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnJpZ2h0Q2xpY2ssIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdENsaWNrT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRlRXhwcmVzc2lvbkNvbW1hbmQgZXh0ZW5kcyBDb21tYW5kQmFzZSB7XG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5leGVjdXRlRXhwcmVzc2lvbiwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdleHByZXNzaW9uJywgdHlwZTogbm9uRW1wdHlTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3Jlc3VsdFZhcmlhYmxlTmFtZScsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVBc3luY0V4cHJlc3Npb25Db21tYW5kIGV4dGVuZHMgQ29tbWFuZEJhc2Uge1xuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZXhlY3V0ZUFzeW5jRXhwcmVzc2lvbiwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdleHByZXNzaW9uJywgdHlwZTogc3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRG91YmxlQ2xpY2tDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZG91YmxlQ2xpY2spO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5kb3VibGVDbGljaywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0Q2xpY2tPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhvdmVyQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmhvdmVyKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuaG92ZXIsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdE1vdXNlT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlVGV4dENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS50eXBlVGV4dCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnR5cGVUZXh0LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFR5cGVTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RleHQnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRUeXBlT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEcmFnQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmRyYWcpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5kcmFnLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZHJhZ09mZnNldFgnLCB0eXBlOiBpbnRlZ2VyQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkcmFnT2Zmc2V0WScsIHR5cGU6IGludGVnZXJBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0TW91c2VPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWdUb0VsZW1lbnRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZHJhZ1RvRWxlbWVudCk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmRyYWdUb0VsZW1lbnQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXN0aW5hdGlvblNlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXREcmFnVG9FbGVtZW50T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2Nyb2xsKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2Nyb2xsLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3Bvc2l0aW9uJywgdHlwZTogbnVsbGFibGVTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICd4JywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAneScsIHR5cGU6IHBvc2l0aXZlSW50ZWdlckFyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0T2Zmc2V0T3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxCeUNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zY3JvbGxCeSk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNjcm9sbEJ5LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2J5WCcsIHR5cGU6IGludGVnZXJBcmd1bWVudCwgZGVmYXVsdFZhbHVlOiAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdieVknLCB0eXBlOiBpbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogMCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRPZmZzZXRPcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNjcm9sbEludG9WaWV3KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2Nyb2xsSW50b1ZpZXcsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0U2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdE9mZnNldE9wdGlvbnMsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0VGV4dENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZWxlY3RUZXh0KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2VsZWN0VGV4dCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXJ0UG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZW5kUG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRBY3Rpb25PcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdEVkaXRhYmxlQ29udGVudENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZWxlY3RFZGl0YWJsZUNvbnRlbnQpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zZWxlY3RFZGl0YWJsZUNvbnRlbnQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRTZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2VuZFNlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0QWN0aW9uT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RUZXh0QXJlYUNvbnRlbnRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2VsZWN0VGV4dEFyZWFDb250ZW50KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2VsZWN0VGV4dEFyZWFDb250ZW50LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NlbGVjdG9yJywgaW5pdDogaW5pdFNlbGVjdG9yLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRMaW5lJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnRQb3MnLCB0eXBlOiBwb3NpdGl2ZUludGVnZXJBcmd1bWVudCwgZGVmYXVsdFZhbHVlOiBudWxsIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmRMaW5lJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZW5kUG9zJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIGRlZmF1bHRWYWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3B0aW9ucycsIHR5cGU6IGFjdGlvbk9wdGlvbnMsIGluaXQ6IGluaXRBY3Rpb25PcHRpb25zLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByZXNzS2V5Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnByZXNzS2V5KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucHJlc3NLZXksIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAna2V5cycsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdFByZXNzT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0ZVRvQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLm5hdmlnYXRlVG8pO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5uYXZpZ2F0ZVRvLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3VybCcsIHR5cGU6IHBhZ2VVcmxBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXRlU25hcHNob3QnLCB0eXBlOiBudWxsYWJsZVN0cmluZ0FyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZvcmNlUmVsb2FkJywgdHlwZTogYm9vbGVhbkFyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0RmlsZXNUb1VwbG9hZENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZXRGaWxlc1RvVXBsb2FkKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2V0RmlsZXNUb1VwbG9hZCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRVcGxvYWRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVQYXRoJywgdHlwZTogc3RyaW5nT3JTdHJpbmdBcnJheUFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyVXBsb2FkQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmNsZWFyVXBsb2FkKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuY2xlYXJVcGxvYWQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc2VsZWN0b3InLCBpbml0OiBpbml0VXBsb2FkU2VsZWN0b3IsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoVG9JZnJhbWVDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9JZnJhbWUpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zd2l0Y2hUb0lmcmFtZSwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdzZWxlY3RvcicsIGluaXQ6IGluaXRTZWxlY3RvciwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2l0Y2hUb01haW5XaW5kb3dDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9NYWluV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50eXBlID0gVFlQRS5zd2l0Y2hUb01haW5XaW5kb3c7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3BlbldpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5vcGVuV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUub3BlbldpbmRvdywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd1cmwnLCB0eXBlOiBwYWdlVXJsQXJndW1lbnQgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDbG9zZVdpbmRvd0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5jbG9zZVdpbmRvdyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmNsb3NlV2luZG93LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3dpbmRvd0lkJywgdHlwZTogbnVsbGFibGVTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEdldEN1cnJlbnRXaW5kb3dDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0Q3VycmVudFdpbmRvdyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmdldEN1cnJlbnRXaW5kb3csIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0Q3VycmVudFdpbmRvd3NDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0Q3VycmVudFdpbmRvd3MpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5nZXRDdXJyZW50V2luZG93cywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRDdXJyZW50Q0RQU2Vzc2lvbkNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5nZXRDdXJyZW50Q0RQU2Vzc2lvbik7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmdldEN1cnJlbnRDRFBTZXNzaW9uLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN3aXRjaFRvV2luZG93Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnN3aXRjaFRvV2luZG93KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc3dpdGNoVG9XaW5kb3csIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnd2luZG93SWQnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN3aXRjaFRvV2luZG93QnlQcmVkaWNhdGVDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9XaW5kb3cpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zd2l0Y2hUb1dpbmRvd0J5UHJlZGljYXRlLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2lkJywgdHlwZTogbm9uRW1wdHlTdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjaGVja1dpbmRvdycsIHR5cGU6IGZ1bmN0aW9uQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3dpdGNoVG9QYXJlbnRXaW5kb3dDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc3dpdGNoVG9QYXJlbnRXaW5kb3cpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zd2l0Y2hUb1BhcmVudFdpbmRvdywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTd2l0Y2hUb1ByZXZpb3VzV2luZG93Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnN3aXRjaFRvUHJldmlvdXNXaW5kb3cpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5zd2l0Y2hUb1ByZXZpb3VzV2luZG93LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2V0TmF0aXZlRGlhbG9nSGFuZGxlcik7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNldE5hdGl2ZURpYWxvZ0hhbmRsZXIsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnZGlhbG9nSGFuZGxlcicsIGluaXQ6IGluaXREaWFsb2dIYW5kbGVyLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tICh2YWwpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nSGFuZGxlclN0dWIgPSB7XG4gICAgICAgICAgICBkaWFsb2dIYW5kbGVyOiB7IGZuOiBudWxsIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBTZXROYXRpdmVEaWFsb2dIYW5kbGVyQ29tbWFuZChkaWFsb2dIYW5kbGVyU3R1Yik7XG5cbiAgICAgICAgY29tbWFuZC5kaWFsb2dIYW5kbGVyID0gdmFsLmRpYWxvZ0hhbmRsZXI7XG5cbiAgICAgICAgcmV0dXJuIGNvbW1hbmQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0TmF0aXZlRGlhbG9nSGlzdG9yeUNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5nZXROYXRpdmVEaWFsb2dIaXN0b3J5KTtcblxuICAgIGNvbnN0cnVjdG9yICgpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50eXBlID0gVFlQRS5nZXROYXRpdmVEaWFsb2dIaXN0b3J5O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEJyb3dzZXJDb25zb2xlTWVzc2FnZXNDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0QnJvd3NlckNvbnNvbGVNZXNzYWdlcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudHlwZSA9IFRZUEUuZ2V0QnJvd3NlckNvbnNvbGVNZXNzYWdlcztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRUZXN0U3BlZWRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2V0VGVzdFNwZWVkKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2V0VGVzdFNwZWVkLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ3NwZWVkJywgdHlwZTogc2V0U3BlZWRBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRQYWdlTG9hZFRpbWVvdXRDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuc2V0UGFnZUxvYWRUaW1lb3V0KTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2V0UGFnZUxvYWRUaW1lb3V0LCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2R1cmF0aW9uJywgdHlwZTogcG9zaXRpdmVJbnRlZ2VyQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlUm9sZUNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS51c2VSb2xlKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUudXNlUm9sZSwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdyb2xlJywgdHlwZTogYWN0aW9uUm9sZUFyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENsb3NlQ2hpbGRXaW5kb3dPbkZpbGVEb3dubG9hZGluZyBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmNsb3NlQ2hpbGRXaW5kb3dPbkZpbGVEb3dubG9hZGluZyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmNsb3NlQ2hpbGRXaW5kb3dPbkZpbGVEb3dubG9hZGluZywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRlckNvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5yZWNvcmRlcik7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5yZWNvcmRlcik7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnc3VidHlwZScsIHR5cGU6IG5vbkVtcHR5U3RyaW5nQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdmb3JjZUV4ZWN1dGlvbkluVG9wV2luZG93T25seScsIHR5cGU6IGJvb2xlYW5Bcmd1bWVudCwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldENvb2tpZXNDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuZ2V0Q29va2llcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLmdldENvb2tpZXMsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndXJscycsIHR5cGU6IHVybHNBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjb29raWVzJywgdHlwZTogY29va2llc0FyZ3VtZW50LCBpbml0OiBpbml0Q29va2llc09wdGlvbiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2V0Q29va2llc0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5zZXRDb29raWVzKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuc2V0Q29va2llcywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd1cmwnLCB0eXBlOiB1cmxzQXJndW1lbnQsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnY29va2llcycsIHR5cGU6IHNldENvb2tpZXNBcmd1bWVudCwgaW5pdDogaW5pdENvb2tpZXNPcHRpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlQ29va2llc0NvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5kZWxldGVDb29raWVzKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZGVsZXRlQ29va2llcywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd1cmxzJywgdHlwZTogdXJsc0FyZ3VtZW50LCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2Nvb2tpZXMnLCB0eXBlOiBjb29raWVzQXJndW1lbnQsIGluaXQ6IGluaXRDb29raWVzT3B0aW9uLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0Q29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnJlcXVlc3QpO1xuICAgIHN0YXRpYyBleHRlbmRlZE1ldGhvZHMgPSBbJ2dldCcsICdwb3N0JywgJ2RlbGV0ZScsICdwdXQnLCAncGF0Y2gnLCAnaGVhZCddO1xuICAgIHN0YXRpYyByZXN1bHRHZXR0ZXJzID0gWydzdGF0dXMnLCAnc3RhdHVzVGV4dCcsICdoZWFkZXJzJywgJ2JvZHknXTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucmVxdWVzdCwgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICd1cmwnLCB0eXBlOiB1cmxBcmd1bWVudCwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogYWN0aW9uT3B0aW9ucywgaW5pdDogaW5pdFJlcXVlc3RPcHRpb24sIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldFByb3h5VXJsQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLmdldFByb3h5VXJsKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuZ2V0UHJveHlVcmwsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAndXJsJywgdHlwZTogdXJsQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgaW5pdDogaW5pdEdldFByb3h5VXJsT3B0aW9ucywgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2tpcEpzRXJyb3JzQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnNraXBKc0Vycm9ycyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnNraXBKc0Vycm9ycywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdvcHRpb25zJywgdHlwZTogc2tpcEpzRXJyb3JPcHRpb25zLCBpbml0OiBpbml0U2tpcEpzRXJyb3JzT3B0aW9ucywgcmVxdWlyZWQ6IGZhbHNlLCBkZWZhdWx0VmFsdWU6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSdW5DdXN0b21BY3Rpb25Db21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUucnVuQ3VzdG9tQWN0aW9uKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUucnVuQ3VzdG9tQWN0aW9uLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZuJywgdHlwZTogZnVuY3Rpb25Bcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCB0eXBlOiBzdHJpbmdBcmd1bWVudCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2FyZ3MnLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRSZXF1ZXN0SG9va3NDb21tYW5kIGV4dGVuZHMgQWN0aW9uQ29tbWFuZEJhc2Uge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gY2FtZWxDYXNlKFRZUEUuYWRkUmVxdWVzdEhvb2tzKTtcblxuICAgIGNvbnN0cnVjdG9yIChvYmosIHRlc3RSdW4sIHZhbGlkYXRlUHJvcGVydGllcykge1xuICAgICAgICBzdXBlcihvYmosIHRlc3RSdW4sIFRZUEUuYWRkUmVxdWVzdEhvb2tzLCB2YWxpZGF0ZVByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGdldEFzc2lnbmFibGVQcm9wZXJ0aWVzICgpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2hvb2tzJywgdHlwZTogcmVxdWVzdEhvb2tzQXJndW1lbnQsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVtb3ZlUmVxdWVzdEhvb2tzQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IGNhbWVsQ2FzZShUWVBFLnJlbW92ZVJlcXVlc3RIb29rcyk7XG5cbiAgICBjb25zdHJ1Y3RvciAob2JqLCB0ZXN0UnVuLCB2YWxpZGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgc3VwZXIob2JqLCB0ZXN0UnVuLCBUWVBFLnJlbW92ZVJlcXVlc3RIb29rcywgdmFsaWRhdGVQcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBnZXRBc3NpZ25hYmxlUHJvcGVydGllcyAoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdob29rcycsIHR5cGU6IHJlcXVlc3RIb29rc0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcG9ydENvbW1hbmQgZXh0ZW5kcyBBY3Rpb25Db21tYW5kQmFzZSB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBjYW1lbENhc2UoVFlQRS5yZXBvcnQpO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5yZXBvcnQsIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnYXJncycsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|
|
@@ -42,6 +42,7 @@ exports.default = {
|
|
|
42
42
|
closeWindow: 'close-window',
|
|
43
43
|
getCurrentWindow: 'get-current-window',
|
|
44
44
|
getCurrentWindows: 'get-current-windows',
|
|
45
|
+
getCurrentCDPSession: 'get-current-c-d-p-session',
|
|
45
46
|
switchToWindow: 'switch-to-window',
|
|
46
47
|
switchToWindowByPredicate: 'switch-to-window-by-predicate',
|
|
47
48
|
switchToParentWindow: 'switch-to-parent-window',
|
|
@@ -75,4 +76,4 @@ exports.default = {
|
|
|
75
76
|
report: 'report',
|
|
76
77
|
};
|
|
77
78
|
module.exports = exports.default;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0LXJ1bi9jb21tYW5kcy90eXBlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnRUFBZ0U7QUFDaEUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxnRUFBZ0U7O0FBRWhFLGtCQUFlO0lBQ1gsYUFBYSxFQUF3QixnQkFBZ0I7SUFDckQsS0FBSyxFQUFnQyxPQUFPO0lBQzVDLFVBQVUsRUFBMkIsYUFBYTtJQUNsRCxXQUFXLEVBQTBCLGNBQWM7SUFDbkQsSUFBSSxFQUFpQyxNQUFNO0lBQzNDLGFBQWEsRUFBd0IsaUJBQWlCO0lBQ3RELEtBQUssRUFBZ0MsT0FBTztJQUM1QyxNQUFNLEVBQStCLFFBQVE7SUFDN0MsUUFBUSxFQUE2QixXQUFXO0lBQ2hELGNBQWMsRUFBdUIsa0JBQWtCO0lBQ3ZELFFBQVEsRUFBNkIsV0FBVztJQUNoRCxVQUFVLEVBQTJCLGFBQWE7SUFDbEQscUJBQXFCLEVBQWdCLDBCQUEwQjtJQUMvRCxxQkFBcUIsRUFBZ0IseUJBQXlCO0lBQzlELFFBQVEsRUFBNkIsV0FBVztJQUNoRCxJQUFJLEVBQWlDLE1BQU07SUFDM0MsVUFBVSxFQUEyQixhQUFhO0lBQ2xELGdCQUFnQixFQUFxQixxQkFBcUI7SUFDMUQsV0FBVyxFQUEwQixjQUFjO0lBQ25ELHFCQUFxQixFQUFnQix5QkFBeUI7SUFDOUQsZUFBZSxFQUFzQixrQkFBa0I7SUFDdkQsY0FBYyxFQUF1QixpQkFBaUI7SUFDdEQscUJBQXFCLEVBQWdCLHlCQUF5QjtJQUM5RCxvQkFBb0IsRUFBaUIseUJBQXlCO0lBQzlELDBCQUEwQixFQUFXLDhCQUE4QjtJQUNuRSwwQkFBMEIsRUFBVywrQkFBK0I7SUFDcEUsMEJBQTBCLEVBQVcsK0JBQStCO0lBQ3BFLGFBQWEsRUFBd0IsZ0JBQWdCO0lBQ3JELFlBQVksRUFBeUIsZUFBZTtJQUNwRCx1QkFBdUIsRUFBYyw2QkFBNkI7SUFDbEUsY0FBYyxFQUF1QixpQkFBaUI7SUFDdEQsY0FBYyxFQUF1QixrQkFBa0I7SUFDdkQsa0JBQWtCLEVBQW1CLHVCQUF1QjtJQUM1RCxVQUFVLEVBQTJCLGFBQWE7SUFDbEQsV0FBVyxFQUEwQixjQUFjO0lBQ25ELGdCQUFnQixFQUFxQixvQkFBb0I7SUFDekQsaUJBQWlCLEVBQW9CLHFCQUFxQjtJQUMxRCxvQkFBb0IsRUFBaUIsMkJBQTJCO0lBQ2hFLGNBQWMsRUFBdUIsa0JBQWtCO0lBQ3ZELHlCQUF5QixFQUFZLCtCQUErQjtJQUNwRSxvQkFBb0IsRUFBaUIseUJBQXlCO0lBQzlELHNCQUFzQixFQUFlLDJCQUEyQjtJQUNoRSxzQkFBc0IsRUFBZSwyQkFBMkI7SUFDaEUsc0JBQXNCLEVBQWUsMkJBQTJCO0lBQ2hFLHlCQUF5QixFQUFZLDhCQUE4QjtJQUNuRSxnQkFBZ0IsRUFBcUIsb0JBQW9CO0lBQ3pELFlBQVksRUFBeUIsZ0JBQWdCO0lBQ3JELGtCQUFrQixFQUFtQix1QkFBdUI7SUFDNUQsS0FBSyxFQUFnQyxPQUFPO0lBQzVDLFNBQVMsRUFBNEIsV0FBVztJQUNoRCxPQUFPLEVBQThCLFNBQVM7SUFDOUMsUUFBUSxFQUE2QixXQUFXO0lBQ2hELGNBQWMsRUFBdUIsaUJBQWlCO0lBQ3RELGlCQUFpQixFQUFvQixvQkFBb0I7SUFDekQsc0JBQXNCLEVBQWUsMEJBQTBCO0lBQy9ELFVBQVUsRUFBMkIsYUFBYTtJQUNsRCxpQ0FBaUMsRUFBSSx3Q0FBd0M7SUFDN0UsUUFBUSxFQUE2QixVQUFVO0lBQy9DLG1DQUFtQyxFQUFFLDBDQUEwQztJQUMvRSxVQUFVLEVBQTJCLGFBQWE7SUFDbEQsVUFBVSxFQUEyQixhQUFhO0lBQ2xELGFBQWEsRUFBd0IsZ0JBQWdCO0lBQ3JELFdBQVcsRUFBMEIsZUFBZTtJQUNwRCxPQUFPLEVBQThCLFNBQVM7SUFDOUMsWUFBWSxFQUF5QixnQkFBZ0I7SUFDckQsZUFBZSxFQUFzQixtQkFBbUI7SUFDeEQsa0JBQWtCLEVBQW1CLHNCQUFzQjtJQUMzRCxlQUFlLEVBQXNCLG1CQUFtQjtJQUN4RCxNQUFNLEVBQStCLFFBQVE7Q0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdBUk5JTkc6IHRoaXMgZmlsZSBpcyB1c2VkIGJ5IGJvdGggdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlci5cbi8vIERvIG5vdCB1c2UgYW55IGJyb3dzZXIgb3Igbm9kZS1zcGVjaWZpYyBBUEkhXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBkaXNwYXRjaEV2ZW50OiAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BhdGNoLWV2ZW50JyxcbiAgICBjbGljazogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICByaWdodENsaWNrOiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0LWNsaWNrJyxcbiAgICBkb3VibGVDbGljazogICAgICAgICAgICAgICAgICAgICAgICAgJ2RvdWJsZS1jbGljaycsXG4gICAgZHJhZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcmFnJyxcbiAgICBkcmFnVG9FbGVtZW50OiAgICAgICAgICAgICAgICAgICAgICAgJ2RyYWctdG8tZWxlbWVudCcsXG4gICAgaG92ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdob3ZlcicsXG4gICAgc2Nyb2xsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JvbGwnLFxuICAgIHNjcm9sbEJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsLWJ5JyxcbiAgICBzY3JvbGxJbnRvVmlldzogICAgICAgICAgICAgICAgICAgICAgJ3Njcm9sbC1pbnRvLXZpZXcnLFxuICAgIHR5cGVUZXh0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZS10ZXh0JyxcbiAgICBzZWxlY3RUZXh0OiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlbGVjdC10ZXh0JyxcbiAgICBzZWxlY3RUZXh0QXJlYUNvbnRlbnQ6ICAgICAgICAgICAgICAgJ3NlbGVjdC10ZXh0LWFyZWEtY29udGVudCcsXG4gICAgc2VsZWN0RWRpdGFibGVDb250ZW50OiAgICAgICAgICAgICAgICdzZWxlY3QtZWRpdGFibGUtY29udGVudCcsXG4gICAgcHJlc3NLZXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmVzcy1rZXknLFxuICAgIHdhaXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdCcsXG4gICAgbmF2aWdhdGVUbzogICAgICAgICAgICAgICAgICAgICAgICAgICduYXZpZ2F0ZS10bycsXG4gICAgc2V0RmlsZXNUb1VwbG9hZDogICAgICAgICAgICAgICAgICAgICdzZXQtZmlsZXMtdG8tdXBsb2FkJyxcbiAgICBjbGVhclVwbG9hZDogICAgICAgICAgICAgICAgICAgICAgICAgJ2NsZWFyLXVwbG9hZCcsXG4gICAgZXhlY3V0ZUNsaWVudEZ1bmN0aW9uOiAgICAgICAgICAgICAgICdleGVjdXRlLWNsaWVudC1mdW5jdGlvbicsXG4gICAgZXhlY3V0ZVNlbGVjdG9yOiAgICAgICAgICAgICAgICAgICAgICdleGVjdXRlLXNlbGVjdG9yJyxcbiAgICB0YWtlU2NyZWVuc2hvdDogICAgICAgICAgICAgICAgICAgICAgJ3Rha2Utc2NyZWVuc2hvdCcsXG4gICAgdGFrZUVsZW1lbnRTY3JlZW5zaG90OiAgICAgICAgICAgICAgICd0YWtlLWVsZW1lbnQtc2NyZWVuc2hvdCcsXG4gICAgdGFrZVNjcmVlbnNob3RPbkZhaWw6ICAgICAgICAgICAgICAgICd0YWtlLXNjcmVlbnNob3Qtb24tZmFpbCcsXG4gICAgcHJlcGFyZUJyb3dzZXJNYW5pcHVsYXRpb246ICAgICAgICAgICdwcmVwYXJlLWJyb3dzZXItbWFuaXB1bGF0aW9uJyxcbiAgICBzaG93QXNzZXJ0aW9uUmV0cmllc1N0YXR1czogICAgICAgICAgJ3Nob3ctYXNzZXJ0aW9uLXJldHJpZXMtc3RhdHVzJyxcbiAgICBoaWRlQXNzZXJ0aW9uUmV0cmllc1N0YXR1czogICAgICAgICAgJ2hpZGUtYXNzZXJ0aW9uLXJldHJpZXMtc3RhdHVzJyxcbiAgICBzZXRCcmVha3BvaW50OiAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1icmVha3BvaW50JyxcbiAgICByZXNpemVXaW5kb3c6ICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc2l6ZS13aW5kb3cnLFxuICAgIHJlc2l6ZVdpbmRvd1RvRml0RGV2aWNlOiAgICAgICAgICAgICAncmVzaXplLXdpbmRvdy10by1maXQtZGV2aWNlJyxcbiAgICBtYXhpbWl6ZVdpbmRvdzogICAgICAgICAgICAgICAgICAgICAgJ21heGltaXplLXdpbmRvdycsXG4gICAgc3dpdGNoVG9JZnJhbWU6ICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gtdG8taWZyYW1lJyxcbiAgICBzd2l0Y2hUb01haW5XaW5kb3c6ICAgICAgICAgICAgICAgICAgJ3N3aXRjaC10by1tYWluLXdpbmRvdycsXG4gICAgb3BlbldpbmRvdzogICAgICAgICAgICAgICAgICAgICAgICAgICdvcGVuLXdpbmRvdycsXG4gICAgY2xvc2VXaW5kb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZS13aW5kb3cnLFxuICAgIGdldEN1cnJlbnRXaW5kb3c6ICAgICAgICAgICAgICAgICAgICAnZ2V0LWN1cnJlbnQtd2luZG93JyxcbiAgICBnZXRDdXJyZW50V2luZG93czogICAgICAgICAgICAgICAgICAgJ2dldC1jdXJyZW50LXdpbmRvd3MnLFxuICAgIGdldEN1cnJlbnRDRFBTZXNzaW9uOiAgICAgICAgICAgICAgICAnZ2V0LWN1cnJlbnQtYy1kLXAtc2Vzc2lvbicsXG4gICAgc3dpdGNoVG9XaW5kb3c6ICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gtdG8td2luZG93JyxcbiAgICBzd2l0Y2hUb1dpbmRvd0J5UHJlZGljYXRlOiAgICAgICAgICAgJ3N3aXRjaC10by13aW5kb3ctYnktcHJlZGljYXRlJyxcbiAgICBzd2l0Y2hUb1BhcmVudFdpbmRvdzogICAgICAgICAgICAgICAgJ3N3aXRjaC10by1wYXJlbnQtd2luZG93JyxcbiAgICBzd2l0Y2hUb1ByZXZpb3VzV2luZG93OiAgICAgICAgICAgICAgJ3N3aXRjaC10by1wcmV2aW91cy13aW5kb3cnLFxuICAgIHNldE5hdGl2ZURpYWxvZ0hhbmRsZXI6ICAgICAgICAgICAgICAnc2V0LW5hdGl2ZS1kaWFsb2ctaGFuZGxlcicsXG4gICAgZ2V0TmF0aXZlRGlhbG9nSGlzdG9yeTogICAgICAgICAgICAgICdnZXQtbmF0aXZlLWRpYWxvZy1oaXN0b3J5JyxcbiAgICBnZXRCcm93c2VyQ29uc29sZU1lc3NhZ2VzOiAgICAgICAgICAgJ2dldC1icm93c2VyLWNvbnNvbGUtbWVzc2FnZXMnLFxuICAgIGdldEFjdGl2ZUVsZW1lbnQ6ICAgICAgICAgICAgICAgICAgICAnZ2V0LWFjdGl2ZS1lbGVtZW50JyxcbiAgICBzZXRUZXN0U3BlZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC10ZXN0LXNwZWVkJyxcbiAgICBzZXRQYWdlTG9hZFRpbWVvdXQ6ICAgICAgICAgICAgICAgICAgJ3NldC1wYWdlLWxvYWQtdGltZW91dCcsXG4gICAgZGVidWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWJ1ZycsXG4gICAgYXNzZXJ0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICdhc3NlcnRpb24nLFxuICAgIHVzZVJvbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlUm9sZScsXG4gICAgdGVzdERvbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LWRvbmUnLFxuICAgIGJhY2t1cFN0b3JhZ2VzOiAgICAgICAgICAgICAgICAgICAgICAnYmFja3VwLXN0b3JhZ2VzJyxcbiAgICBleGVjdXRlRXhwcmVzc2lvbjogICAgICAgICAgICAgICAgICAgJ2V4ZWN1dGUtZXhwcmVzc2lvbicsXG4gICAgZXhlY3V0ZUFzeW5jRXhwcmVzc2lvbjogICAgICAgICAgICAgICdleGVjdXRlLWFzeW5jLWV4cHJlc3Npb24nLFxuICAgIHVubG9ja1BhZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAndW5sb2NrLXBhZ2UnLFxuICAgIGNsb3NlQ2hpbGRXaW5kb3dPbkZpbGVEb3dubG9hZGluZzogICAnY2xvc2UtY2hpbGQtd2luZG93LW9uLWZpbGUtZG93bmxvYWRpbmcnLFxuICAgIHJlY29yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjb3JkZXInLFxuICAgIHByZXBhcmVDbGllbnRFbnZpcm9ubWVudEluRGVidWdNb2RlOiAncHJlcGFyZS1jbGllbnQtZW52aXJvbm1lbnQtaW4tZGVidWctbW9kZScsXG4gICAgZ2V0Q29va2llczogICAgICAgICAgICAgICAgICAgICAgICAgICdnZXQtY29va2llcycsXG4gICAgc2V0Q29va2llczogICAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY29va2llcycsXG4gICAgZGVsZXRlQ29va2llczogICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUtY29va2llcycsXG4gICAgZ2V0UHJveHlVcmw6ICAgICAgICAgICAgICAgICAgICAgICAgICdnZXQtcHJveHktdXJsJyxcbiAgICByZXF1ZXN0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QnLFxuICAgIHNraXBKc0Vycm9yczogICAgICAgICAgICAgICAgICAgICAgICAnc2tpcC1qcy1lcnJvcnMnLFxuICAgIGFkZFJlcXVlc3RIb29rczogICAgICAgICAgICAgICAgICAgICAnYWRkLXJlcXVlc3QtaG9va3MnLFxuICAgIHJlbW92ZVJlcXVlc3RIb29rczogICAgICAgICAgICAgICAgICAncmVtb3ZlLXJlcXVlc3QtaG9va3MnLFxuICAgIHJ1bkN1c3RvbUFjdGlvbjogICAgICAgICAgICAgICAgICAgICAncnVuLWN1c3RvbS1hY3Rpb24nLFxuICAgIHJlcG9ydDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVwb3J0Jyxcbn07XG4iXX0=
|