@magic-xpa/engine 4.801.0-dev481.231 → 4.801.0-dev481.235
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/bundles/magic-xpa-engine.umd.js +153 -167
- package/bundles/magic-xpa-engine.umd.js.map +1 -1
- package/bundles/magic-xpa-engine.umd.min.js +1 -1
- package/bundles/magic-xpa-engine.umd.min.js.map +1 -1
- package/esm2015/src/ClientManager.js +2 -2
- package/esm2015/src/CurrentClientVersion.js +2 -2
- package/esm2015/src/GUIManager.js +2 -2
- package/esm2015/src/GuiEventsProcessor.js +5 -5
- package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js +3 -3
- package/esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ComputeEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/DataviewCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/EvaluateCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/EventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/QueryCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/RecomputeCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/RefreshEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/RollbackEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/TransactionCommand.js +2 -2
- package/esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js +2 -2
- package/esm2015/src/data/DataView.js +2 -2
- package/esm2015/src/data/Field.js +2 -2
- package/esm2015/src/data/Record.js +4 -4
- package/esm2015/src/data/RecordsTable.js +2 -2
- package/esm2015/src/data/TaskTransactionManager.js +2 -2
- package/esm2015/src/data/XMLBasedDcValuesBuilder.js +3 -3
- package/esm2015/src/env/Environment.js +1 -7
- package/esm2015/src/event/Event.js +6 -14
- package/esm2015/src/event/EventsManager.js +32 -32
- package/esm2015/src/event/IEventsManager.js +1 -1
- package/esm2015/src/event/RunTimeEvent.js +7 -7
- package/esm2015/src/exp/ExpressionEvaluator.js +21 -21
- package/esm2015/src/exp/ExpressionLocalJpn.js +3 -3
- package/esm2015/src/gui/MgControl.js +1 -1
- package/esm2015/src/gui/MgForm.js +9 -9
- package/esm2015/src/http/client/HttpClientAsync.js +4 -4
- package/esm2015/src/http/client/HttpClientBase.js +4 -4
- package/esm2015/src/http/client/HttpClientSync.js +3 -3
- package/esm2015/src/remote/RemoteCommandsProcessor.js +7 -8
- package/esm2015/src/rt/Boundary.js +4 -4
- package/esm2015/src/rt/DataviewHeaderBase.js +1 -1
- package/esm2015/src/rt/DataviewHeaderFactory.js +2 -2
- package/esm2015/src/rt/DataviewHeadersSaxHandler.js +2 -2
- package/esm2015/src/rt/Operation.js +5 -5
- package/esm2015/src/rt/RemoteDataviewHeader.js +6 -6
- package/esm2015/src/rt/Transaction.js +2 -2
- package/esm2015/src/tasks/MGDataCollection.js +3 -3
- package/esm2015/src/tasks/RemoteTaskService.js +3 -3
- package/esm2015/src/tasks/Task.js +9 -9
- package/esm2015/src/tasks/TaskServiceBase.js +1 -1
- package/esm2015/src/tasks/sort/SortCollection.js +4 -4
- package/esm2015/src/util/FlowMonitorQueue.js +2 -2
- package/esm2015/src/util/Process.js +2 -2
- package/esm2015/src/util/ReturnResult.js +3 -3
- package/fesm2015/magic-xpa-engine.js +153 -167
- package/fesm2015/magic-xpa-engine.js.map +1 -1
- package/package.json +4 -4
- package/src/GuiEventsProcessor.d.ts +1 -1
- package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ComputeEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +1 -2
- package/src/commands/ClientToServer/DataviewCommand.d.ts +1 -2
- package/src/commands/ClientToServer/EvaluateCommand.d.ts +1 -2
- package/src/commands/ClientToServer/EventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +1 -2
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +1 -2
- package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/QueryCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RecomputeCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RefreshEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RollbackEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/TransactionCommand.d.ts +1 -2
- package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +1 -2
- package/src/data/RecordsTable.d.ts +1 -2
- package/src/data/XMLBasedDcValuesBuilder.d.ts +1 -1
- package/src/env/Environment.d.ts +0 -3
- package/src/event/Event.d.ts +0 -3
- package/src/event/EventsManager.d.ts +7 -8
- package/src/event/IEventsManager.d.ts +5 -6
- package/src/exp/ExpressionEvaluator.d.ts +2 -2
- package/src/exp/ExpressionLocalJpn.d.ts +2 -2
- package/src/gui/MgForm.d.ts +4 -4
- package/src/http/client/HttpClientAsync.d.ts +2 -2
- package/src/http/client/HttpClientBase.d.ts +2 -2
- package/src/http/client/HttpClientSync.d.ts +2 -2
- package/src/remote/RemoteCommandsProcessor.d.ts +1 -1
- package/src/rt/DataviewHeaderBase.d.ts +1 -1
- package/src/rt/DataviewHeaderFactory.d.ts +1 -1
- package/src/rt/Operation.d.ts +1 -1
- package/src/rt/RemoteDataviewHeader.d.ts +1 -2
- package/src/rt/Transaction.d.ts +1 -1
- package/src/tasks/RemoteTaskService.d.ts +2 -3
- package/src/tasks/Task.d.ts +1 -1
- package/src/tasks/TaskServiceBase.d.ts +2 -4
- package/src/tasks/sort/SortCollection.d.ts +2 -3
- package/src/util/FlowMonitorQueue.d.ts +1 -1
- package/src/util/Process.d.ts +1 -1
|
@@ -9,7 +9,7 @@ export class HttpClientAsync extends HttpClientBase {
|
|
|
9
9
|
super();
|
|
10
10
|
this.httpClient = httpClient;
|
|
11
11
|
}
|
|
12
|
-
prepareRequest(
|
|
12
|
+
prepareRequest() {
|
|
13
13
|
}
|
|
14
14
|
addHeaders(urlString, useCache, httpHeaders, clientID) {
|
|
15
15
|
if (!urlString.startsWith("/"))
|
|
@@ -18,7 +18,7 @@ export class HttpClientAsync extends HttpClientBase {
|
|
|
18
18
|
httpHeaders = httpHeaders.append("Cache-Control", 'no-cache');
|
|
19
19
|
return httpHeaders;
|
|
20
20
|
}
|
|
21
|
-
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer
|
|
21
|
+
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
23
|
let httpResponse = yield this.httpClient.request(RequestMethod[httpMethod], urlString, { headers: httpHeaders, responseType: "text", observe: "response", body: requestContent }).toPromise();
|
|
24
24
|
contentFromServer.value = httpResponse.body;
|
|
@@ -35,7 +35,7 @@ export class HttpClientAsync extends HttpClientBase {
|
|
|
35
35
|
if (ex instanceof HttpErrorResponse) {
|
|
36
36
|
let statusCode = ex['status'];
|
|
37
37
|
if (statusCode === 404 || statusCode === 403)
|
|
38
|
-
throw new WebException(new Error("bad URL: " + urlString + " - StatusCode = " + statusCode)
|
|
38
|
+
throw new WebException(new Error("bad URL: " + urlString + " - StatusCode = " + statusCode));
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
shouldRetry(httpCommunicationTimeoutMS, urlString, communicationsFailureHandler, ex, startTimeRef) {
|
|
@@ -69,4 +69,4 @@ export class HttpClientAsync extends HttpClientBase {
|
|
|
69
69
|
Logger.Instance.WriteServerToLog(NString.Format("Succeeded after {0} attempts ...", executionAttempts));
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9odHRwL2NsaWVudC9IdHRwQ2xpZW50QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBYSxpQkFBaUIsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUMsT0FBTyxFQUFZLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUF5QixFQUFFLFNBQWlCO0lBRzNELENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUIsRUFBRSxRQUFpQixFQUFFLFdBQXdCLEVBQUUsUUFBZ0I7UUFFekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQzVCLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxRQUFRO1lBQ1gsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFSyxtQkFBbUIsQ0FBQyxVQUF5QixF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Q0UsNEJBQTRCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLDRCQUE0QixDQUFDLHNCQUFzQixFQUN2RDtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMscUNBQXFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDbkcsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDbEQsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRUQsb0JBQW9CLENBQUMsRUFBRTtRQUVyQixNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxpQkFBeUI7UUFFNUMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TlN0cmluZywgUmVmUGFyYW0sIFRocmVhZCwgV2ViRXhjZXB0aW9ufSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50QmFzZSwgUmVxdWVzdE1ldGhvZH0gZnJvbSBcIi4vSHR0cENsaWVudEJhc2VcIjtcclxuaW1wb3J0IHtMb2dnZXIsIExvZ2dlcl9Mb2dMZXZlbHMsIExvZ2dlcl9NZXNzYWdlRGlyZWN0aW9uLCBNaXNjfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0h0dHBDbGllbnRFdmVudHN9IGZyb20gXCIuL0h0dHBDbGllbnRFdmVudHNcIjtcclxuaW1wb3J0IHtJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcn0gZnJvbSBcIi4vSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJcIjtcclxuXHJcbi8vIEEgY2xhc3MgdXNpbmcgSHR0cCBBc3luYyBMaWJyYXJ5XHJcbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50QXN5bmMgZXh0ZW5kcyBIdHRwQ2xpZW50QmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZVJlcXVlc3QoaHR0cG1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcpXHJcbiAge1xyXG4gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gbmVlZGVkXHJcbiAgfVxyXG5cclxuICBhZGRIZWFkZXJzKHVybFN0cmluZzogc3RyaW5nLCB1c2VDYWNoZTogYm9vbGVhbiwgaHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzLCBjbGllbnRJRDogc3RyaW5nKTogSHR0cEhlYWRlcnNcclxuICB7XHJcbiAgICBpZiAoIXVybFN0cmluZy5zdGFydHNXaXRoKFwiL1wiKSlcclxuICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQoXCJNZ3hwYVJJQWdsb2JhbFVuaXF1ZVNlc3Npb25JRFwiLCBjbGllbnRJRCk7XHJcblxyXG4gICAgaWYgKCF1c2VDYWNoZSlcclxuICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQoXCJDYWNoZS1Db250cm9sXCIsICduby1jYWNoZScpO1xyXG5cclxuICAgIHJldHVybiBodHRwSGVhZGVycztcclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbmRSZXF1ZXN0VG9TZXJ2ZXIoaHR0cE1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcsIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgY29udGVudEZyb21TZXJ2ZXI6IFJlZlBhcmFtPHN0cmluZz4sIHRpbWVCZWZvcmVSZXF1ZXN0OiBudW1iZXIsIGNsaWVudElEOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gPSBhd2FpdCB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChSZXF1ZXN0TWV0aG9kW2h0dHBNZXRob2RdLCB1cmxTdHJpbmcsXHJcbiAgICAgIHtoZWFkZXJzOiBodHRwSGVhZGVycywgcmVzcG9uc2VUeXBlOiBcInRleHRcIiwgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBib2R5OiByZXF1ZXN0Q29udGVudH0pLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlID0gaHR0cFJlc3BvbnNlLmJvZHkgYXMgYW55O1xyXG5cclxuICAgIHJldHVybiBodHRwUmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBsb2dSZXNwb25zZShodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZTxzdHJpbmc+LCBjbGllbnRJRDogc3RyaW5nLCB1cmxTdHJpbmc6IHN0cmluZywgY29udGVudEZyb21TZXJ2ZXI6IFJlZlBhcmFtPGFueT4sIHRpbWVCZWZvcmVSZXF1ZXN0OiBudW1iZXIpXHJcbiAge1xyXG4gICAgbGV0IHN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2VbJ3N0YXR1cyddO1xyXG5cclxuICAgIGxldCByZXNwb25zZVRpbWU6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCkgLSB0aW1lQmVmb3JlUmVxdWVzdDtcclxuICAgIGlmIChMb2dnZXIuSW5zdGFuY2UuTG9nTGV2ZWwgPT09IExvZ2dlcl9Mb2dMZXZlbHMuQmFzaWMpXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUJhc2ljVG9Mb2coTG9nZ2VyX01lc3NhZ2VEaXJlY3Rpb24uTWVzc2FnZUVudGVyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuR2V0UnVudGltZUN0eElEKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRTZXNzaW9uQ291bnRlcigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuU2hvdWxkRGlzcGxheUdlbmVyaWNFcnJvcigpID8gXCItXCIgOiBuZXcgVVJMKHVybFN0cmluZykuaG9zdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZVRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGh0dHBSZXNwb25zZS5oZWFkZXJzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RnJvbVNlcnZlci52YWx1ZS5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSHR0cEVycm9yRXhjZXB0aW9uKGV4OiBhbnksIHVybFN0cmluZzogc3RyaW5nKSB7XHJcbiAgICBpZiAoZXggaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSlcclxuICAgIHtcclxuICAgICAgbGV0IHN0YXR1c0NvZGUgPSBleFsnc3RhdHVzJ107XHJcbiAgICAgIGlmIChzdGF0dXNDb2RlID09PSA0MDQgfHwgc3RhdHVzQ29kZSA9PT0gNDAzKVxyXG4gICAgICAgIHRocm93IG5ldyBXZWJFeGNlcHRpb24obmV3IEVycm9yKFwiYmFkIFVSTDogXCIgKyB1cmxTdHJpbmcgKyBcIiAtIFN0YXR1c0NvZGUgPSBcIiArIHN0YXR1c0NvZGUpLCBzdGF0dXNDb2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNob3VsZFJldHJ5KGh0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TOiBudW1iZXIsIHVybFN0cmluZzogc3RyaW5nLCBjb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyOiBJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlciwgZXg6IGFueSwgc3RhcnRUaW1lUmVmOiBSZWZQYXJhbTxudW1iZXI+KVxyXG4gIHtcclxuICAgIC8vIGRlbGF5IHRoZSB0b3RhbCBodHRwIHRpbWVvdXQgLyAxMC5cclxuICAgIGxldCBjdXJyZW50RGVsYXlNUyA9IE1hdGguZmxvb3IoaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMgLyAxMCk7IC8vIG1zXHJcbiAgICBsZXQgaHR0cEVsYXBzZWRUaW1lTVM6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCkgLSBzdGFydFRpbWVSZWYudmFsdWUgKyBjdXJyZW50RGVsYXlNUztcclxuXHJcbiAgICBpZiAoaHR0cEVsYXBzZWRUaW1lTVMgPD0gaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpXHJcbiAgICB7XHJcbiAgICAgIGF3YWl0IFRocmVhZC5TbGVlcChjdXJyZW50RGVsYXlNUyk7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVdhcm5pbmdUb0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJSZXRyeWluZyB7MH0gOiBlbGFwc2VkIHRpbWUgezE6TjB9bXMgb3V0IG9mIHsyOk4wfW1zXCIsXHJcbiAgICAgICAgdXJsU3RyaW5nLCBodHRwRWxhcHNlZFRpbWVNUywgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nV2l0aE1zZyhOU3RyaW5nLkZvcm1hdChcInswfSA6IGh0dHAgdGltZW91dCB7MTpOMH1tcyBleHBpcmVkXCIsIHVybFN0cmluZywgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuICAgIGlmIChjb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyICE9IG51bGwpXHJcbiAgICB7XHJcbiAgICAgIGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIuQ29tbXVuaWNhdGlvbkZhaWxlZCh1cmxTdHJpbmcsIGV4KTtcclxuICAgICAgaWYgKGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIuU2hvdWxkUmV0cnlMYXN0UmVxdWVzdClcclxuICAgICAge1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiUmV0cnlpbmcgezB9LCBjb25maXJtZWQgYnkgdXNlciAuLi5cIiwgdXJsU3RyaW5nKSk7XHJcbiAgICAgICAgc3RhcnRUaW1lUmVmLnZhbHVlID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGxvZ0FuZFRocm93RXhjZXB0aW9uKGV4KVxyXG4gIHtcclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVdhcm5pbmdUb0xvZ1dpdGhNc2coXCJSZS10aHJvd2luZyAuLi5cIik7XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG4gICAgdGhyb3cgbmV3IFdlYkV4Y2VwdGlvbihleCk7XHJcbiAgfVxyXG5cclxuICBsb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0czogbnVtYmVyKVxyXG4gIHtcclxuICAgIGlmIChleGVjdXRpb25BdHRlbXB0cyA+IDEpXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiU3VjY2VlZGVkIGFmdGVyIHswfSBhdHRlbXB0cyAuLi5cIiwgZXhlY3V0aW9uQXR0ZW1wdHMpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9odHRwL2NsaWVudC9IdHRwQ2xpZW50QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBYSxpQkFBaUIsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUMsT0FBTyxFQUFZLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVELGNBQWM7SUFHZCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWlCLEVBQUUsUUFBaUIsRUFBRSxXQUF3QixFQUFFLFFBQWdCO1FBRXpGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUM1QixXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUU5RSxJQUFJLENBQUMsUUFBUTtZQUNYLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVoRSxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUssbUJBQW1CLENBQUMsVUFBeUIsRUFBRSxTQUFpQixFQUFFLFdBQXdCLEVB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aEUsSUFBSSw0QkFBNEIsQ0FBQyxzQkFBc0IsRUFDdkQ7b0JBQ0UsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHFDQUFxQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ25HLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQ2xELE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FBQTtJQUVELG9CQUFvQixDQUFDLEVBQUU7UUFFckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsaUJBQXlCO1FBRTVDLElBQUksaUJBQWlCLEdBQUcsQ0FBQztZQUN2QixNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2V9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge05TdHJpbmcsIFJlZlBhcmFtLCBUaHJlYWQsIFdlYkV4Y2VwdGlvbn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudEJhc2UsIFJlcXVlc3RNZXRob2R9IGZyb20gXCIuL0h0dHBDbGllbnRCYXNlXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJfTG9nTGV2ZWxzLCBMb2dnZXJfTWVzc2FnZURpcmVjdGlvbiwgTWlzY30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50RXZlbnRzfSBmcm9tIFwiLi9IdHRwQ2xpZW50RXZlbnRzXCI7XHJcbmltcG9ydCB7SUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJ9IGZyb20gXCIuL0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyXCI7XHJcblxyXG4vLyBBIGNsYXNzIHVzaW5nIEh0dHAgQXN5bmMgTGlicmFyeVxyXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudEFzeW5jIGV4dGVuZHMgSHR0cENsaWVudEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHByZXBhcmVSZXF1ZXN0KClcclxuICB7XHJcbiAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiBuZWVkZWRcclxuICB9XHJcblxyXG4gIGFkZEhlYWRlcnModXJsU3RyaW5nOiBzdHJpbmcsIHVzZUNhY2hlOiBib29sZWFuLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIGNsaWVudElEOiBzdHJpbmcpOiBIdHRwSGVhZGVyc1xyXG4gIHtcclxuICAgIGlmICghdXJsU3RyaW5nLnN0YXJ0c1dpdGgoXCIvXCIpKVxyXG4gICAgICBodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLmFwcGVuZChcIk1neHBhUklBZ2xvYmFsVW5pcXVlU2Vzc2lvbklEXCIsIGNsaWVudElEKTtcclxuXHJcbiAgICBpZiAoIXVzZUNhY2hlKVxyXG4gICAgICBodHRwSGVhZGVycyA9IGh0dHBIZWFkZXJzLmFwcGVuZChcIkNhY2hlLUNvbnRyb2xcIiwgJ25vLWNhY2hlJyk7XHJcblxyXG4gICAgcmV0dXJuIGh0dHBIZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2VuZFJlcXVlc3RUb1NlcnZlcihodHRwTWV0aG9kOiBSZXF1ZXN0TWV0aG9kLCB1cmxTdHJpbmc6IHN0cmluZywgaHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzLCByZXF1ZXN0Q29udGVudDogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08c3RyaW5nPik6IFByb21pc2U8YW55PiB7XHJcbiAgICBsZXQgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiA9IGF3YWl0IHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0KFJlcXVlc3RNZXRob2RbaHR0cE1ldGhvZF0sIHVybFN0cmluZyxcclxuICAgICAge2hlYWRlcnM6IGh0dHBIZWFkZXJzLCByZXNwb25zZVR5cGU6IFwidGV4dFwiLCBvYnNlcnZlOiBcInJlc3BvbnNlXCIsIGJvZHk6IHJlcXVlc3RDb250ZW50fSkudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgY29udGVudEZyb21TZXJ2ZXIudmFsdWUgPSBodHRwUmVzcG9uc2UuYm9keSBhcyBhbnk7XHJcblxyXG4gICAgcmV0dXJuIGh0dHBSZXNwb25zZTtcclxuICB9XHJcblxyXG4gIGxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4sIGNsaWVudElEOiBzdHJpbmcsIHVybFN0cmluZzogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55PiwgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlcilcclxuICB7XHJcbiAgICBsZXQgc3RhdHVzQ29kZSA9IGh0dHBSZXNwb25zZVsnc3RhdHVzJ107XHJcblxyXG4gICAgbGV0IHJlc3BvbnNlVGltZTogbnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKSAtIHRpbWVCZWZvcmVSZXF1ZXN0O1xyXG4gICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYylcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNUb0xvZyhMb2dnZXJfTWVzc2FnZURpcmVjdGlvbi5NZXNzYWdlRW50ZXJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRSdW50aW1lQ3R4SUQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkdldFNlc3Npb25Db3VudGVyKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5TaG91bGREaXNwbGF5R2VuZXJpY0Vycm9yKCkgPyBcIi1cIiA6IG5ldyBVUkwodXJsU3RyaW5nKS5ob3N0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoaHR0cFJlc3BvbnNlLmhlYWRlcnMpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVIdHRwRXJyb3JFeGNlcHRpb24oZXg6IGFueSwgdXJsU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGlmIChleCBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKVxyXG4gICAge1xyXG4gICAgICBsZXQgc3RhdHVzQ29kZSA9IGV4WydzdGF0dXMnXTtcclxuICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IDQwNCB8fCBzdGF0dXNDb2RlID09PSA0MDMpXHJcbiAgICAgICAgdGhyb3cgbmV3IFdlYkV4Y2VwdGlvbihuZXcgRXJyb3IoXCJiYWQgVVJMOiBcIiArIHVybFN0cmluZyArIFwiIC0gU3RhdHVzQ29kZSA9IFwiICsgc3RhdHVzQ29kZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2hvdWxkUmV0cnkoaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVM6IG51bWJlciwgdXJsU3RyaW5nOiBzdHJpbmcsIGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXI6IElDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyLCBleDogYW55LCBzdGFydFRpbWVSZWY6IFJlZlBhcmFtPG51bWJlcj4pXHJcbiAge1xyXG4gICAgLy8gZGVsYXkgdGhlIHRvdGFsIGh0dHAgdGltZW91dCAvIDEwLlxyXG4gICAgbGV0IGN1cnJlbnREZWxheU1TID0gTWF0aC5mbG9vcihodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUyAvIDEwKTsgLy8gbXNcclxuICAgIGxldCBodHRwRWxhcHNlZFRpbWVNUzogbnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKSAtIHN0YXJ0VGltZVJlZi52YWx1ZSArIGN1cnJlbnREZWxheU1TO1xyXG5cclxuICAgIGlmIChodHRwRWxhcHNlZFRpbWVNUyA8PSBodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUylcclxuICAgIHtcclxuICAgICAgYXdhaXQgVGhyZWFkLlNsZWVwKGN1cnJlbnREZWxheU1TKTtcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nV2l0aE1zZyhOU3RyaW5nLkZvcm1hdChcIlJldHJ5aW5nIHswfSA6IGVsYXBzZWQgdGltZSB7MTpOMH1tcyBvdXQgb2YgezI6TjB9bXNcIixcclxuICAgICAgICB1cmxTdHJpbmcsIGh0dHBFbGFwc2VkVGltZU1TLCBodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUykpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2dXaXRoTXNnKE5TdHJpbmcuRm9ybWF0KFwiezB9IDogaHR0cCB0aW1lb3V0IHsxOk4wfW1zIGV4cGlyZWRcIiwgdXJsU3RyaW5nLCBodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUykpO1xyXG4gICAgaWYgKGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIgIT0gbnVsbClcclxuICAgIHtcclxuICAgICAgY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlci5Db21tdW5pY2F0aW9uRmFpbGVkKHVybFN0cmluZywgZXgpO1xyXG4gICAgICBpZiAoY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlci5TaG91bGRSZXRyeUxhc3RSZXF1ZXN0KVxyXG4gICAgICB7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJSZXRyeWluZyB7MH0sIGNvbmZpcm1lZCBieSB1c2VyIC4uLlwiLCB1cmxTdHJpbmcpKTtcclxuICAgICAgICBzdGFydFRpbWVSZWYudmFsdWUgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9nQW5kVGhyb3dFeGNlcHRpb24oZXgpXHJcbiAge1xyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nV2l0aE1zZyhcIlJlLXRocm93aW5nIC4uLlwiKTtcclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVdhcm5pbmdUb0xvZyhleCk7XHJcbiAgICB0aHJvdyBuZXcgV2ViRXhjZXB0aW9uKGV4KTtcclxuICB9XHJcblxyXG4gIGxvZ0V4ZWN1dGlvbkF0dGVtcHRzKGV4ZWN1dGlvbkF0dGVtcHRzOiBudW1iZXIpXHJcbiAge1xyXG4gICAgaWYgKGV4ZWN1dGlvbkF0dGVtcHRzID4gMSlcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJTdWNjZWVkZWQgYWZ0ZXIgezB9IGF0dGVtcHRzIC4uLlwiLCBleGVjdXRpb25BdHRlbXB0cykpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -64,7 +64,7 @@ export class HttpClientBase {
|
|
|
64
64
|
ExecuteHttpRequest(urlString, requestContent, useCache, httpMethod, contentFromServer) {
|
|
65
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
66
|
let httpResponse = null;
|
|
67
|
-
this.prepareRequest(
|
|
67
|
+
this.prepareRequest();
|
|
68
68
|
let httpCommunicationTimeoutMS = HttpClientEvents.GetHttpCommunicationTimeout();
|
|
69
69
|
let clientID = HttpClientEvents.GetGlobalUniqueSessionID();
|
|
70
70
|
let executionAttempts = 0;
|
|
@@ -93,14 +93,14 @@ export class HttpClientBase {
|
|
|
93
93
|
}
|
|
94
94
|
let requestTime = Misc.getSystemMilliseconds();
|
|
95
95
|
this.LogRequestInfo(!isNullOrUndefined(requestContent) ? requestContent.length : 0, requestTime, false);
|
|
96
|
-
httpResponse = yield this.sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer
|
|
96
|
+
httpResponse = yield this.sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer);
|
|
97
97
|
this.logResponse(httpResponse, clientID, urlString, contentFromServer, timeBeforeRequest);
|
|
98
98
|
this.LogRequestInfo(!isNullOrUndefined(requestContent) ? requestContent.length : 0, Misc.getSystemMilliseconds() - requestTime, true);
|
|
99
99
|
break;
|
|
100
100
|
}
|
|
101
101
|
catch (ex) {
|
|
102
102
|
if (Logger.Instance.LogLevel === Logger_LogLevels.Basic)
|
|
103
|
-
Logger.Instance.WriteBasicErrorToLog(
|
|
103
|
+
Logger.Instance.WriteBasicErrorToLog();
|
|
104
104
|
else
|
|
105
105
|
Logger.Instance.WriteWarningToLog(ex);
|
|
106
106
|
this.handleHttpErrorException(ex, urlString);
|
|
@@ -145,4 +145,4 @@ export class HttpClientBase {
|
|
|
145
145
|
return result;
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUYsT0FBTyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE1BQU0sc0JBQXNCLEdBQVcsbUJBQW1CLENBQUM7QUFDM0QsTUFBTSw2QkFBNkIsR0FBVyw0QkFBNEIsQ0FBQztBQUUzRSxNQUFNLENBQU4sSUFBWSxhQVNYO0FBVEQsV0FBWSxhQUFhO0lBRXZCLCtDQUFPLENBQUE7SUFDUCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLHFEQUFVLENBQUE7SUFDVix1REFBVyxDQUFBO0lBQ1gsaURBQVEsQ0FBQTtJQUNSLG1EQUFTLENBQUE7QUFDWCxDQUFDLEVBVFcsYUFBYSxLQUFiLGFBQWEsUUFTeEI7QUFVRCxNQUFNLE9BQWdCLGNBQWM7SUFVbEM7UUFUUSxzQkFBaUIsR0FBVyxJQUFJLENBQUM7UUFPekMsaUNBQTRCLEdBQWtDLElBQUksQ0FBQztRQUdqRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFPTyxxQkFBcUIsQ0FBQyxjQUFzQixFQUFFLFVBQTRCO1FBQ2hGLElBQUksTUFBTSxHQUFrQixhQUFhLENBQUMsR0FBRyxD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QUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoRztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFJTyxNQUFNLENBQUMsd0JBQXdCO1FBQ3JDLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQztRQUMzQixJQUFJLGlCQUFpQixHQUFXLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFHOUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDM0MsTUFBTSxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFckQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUtPLE1BQU0sQ0FBQyw2QkFBNkI7UUFDMUMsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBQzVCLElBQUksaUJBQWlCLEdBQVcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUdyRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBV0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmcsIFJlZlBhcmFtLCBTdHJpbmdCdWlsZGVyLCBUaHJlYWQsIFdlYkV4Y2VwdGlvbn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJfTG9nTGV2ZWxzLCBMb2dnZXJfTWVzc2FnZURpcmVjdGlvbiwgTWlzY30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcn0gZnJvbSBcIi4vSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJcIjtcclxuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcInV0aWxcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50RXZlbnRzfSBmcm9tIFwiLi9IdHRwQ2xpZW50RXZlbnRzXCI7XHJcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vLyBleGVjdXRpb24gcHJvcGVydGllc1xyXG5jb25zdCBIVFRQX0VYUEVDVDEwMENPTlRJTlVFOiBzdHJpbmcgPSBcIkV4cGVjdDEwMENvbnRpbnVlXCI7IC8vIEFkZCBIVFRQIGhlYWRlciBcIkV4cGVjdDoxMDBDb250aW51ZVwiXHJcbmNvbnN0IFVTRV9ISUdIRVNUX1NFQ1VSSVRZX1BST1RPQ09MOiBzdHJpbmcgPSBcIlVzZUhpZ2hlc3RTZWN1cml0eVByb3RvY29sXCI7IC8vIFRoaXMgcHJvcGVydHkgZGVjaWRlcyB0byB1c2UgVExTIHYxLjIgKGltcGxlbWVudGVkIGF0IC5ORVQgdjQuNSkgb3IgVExTIHYxLjBcclxuXHJcbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRob2Rcclxue1xyXG4gIEdldCA9IDAsXHJcbiAgUG9zdCA9IDEsXHJcbiAgUHV0ID0gMixcclxuICBEZWxldGUgPSAzLFxyXG4gIE9wdGlvbnMgPSA0LFxyXG4gIEhlYWQgPSA1LFxyXG4gIFBhdGNoID0gNlxyXG59XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyB0aGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvcjpcclxuLy8vICAgIChpKSBkZWNpZGluZyB3aGljaCBtZXRob2QgdG8gdXNlIChHRVQvUE9TVCkuXHJcbi8vLyAgIChpaSkgaGFuZGxpbmcgY29tbXVuaWNhdGlvbiBmYWlsdXJlcy5cclxuLy8vICAoaWlpKSBhZGRpbmcgSFRUUCBoZWFkZXJzIHRvIHJlcXVlc3RzLlxyXG4vLy8gIChpVikgcmV0cmlldmluZyBIVFRQIGhlYWRlcnMgZnJvbSByZXNwb25zZXMuXHJcbi8vLyA8L3N1bW1hcnk+XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cENsaWVudEJhc2Uge1xyXG4gIHByaXZhdGUgX0hUVFBNYXhVUkxMZW5ndGg6IG51bWJlciA9IDIwNDg7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0cyBvciBzZXRzIGEgaGFuZGxlciBmb3IgY29tbXVuaWNhdGlvbnMgZmFpbHVyZS4gVGhpcyBwcm9wZXJ0eSBtYXkgYmVcclxuICAvLy8gc2V0IHRvIG51bGwsIGluIHdoaWNoIGNhc2UgdGhlIEh0dHBDbGllbnRCYXNlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsIGFmdGVyXHJcbiAgLy8vIHRoZSBmaXJzdCByZWNvbm5lY3Rpb24gYXR0ZW1wdC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIENvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXI6IElDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLkNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXR1cm5zIHRoZSByZXF1ZXN0IG1ldGhvZCAoUE9TVCBvciBHRVQpIGJhc2VkIG9uIGl0cyBjb250ZW50cyBhbmQgbGVuZ3RoLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdFVSTFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIERlY2lkZU9uUmVxdWVzdE1ldGhvZChyZXF1ZXN0Q29udGVudDogc3RyaW5nLCByZXF1ZXN0VVJMOiBSZWZQYXJhbTxzdHJpbmc+KTogUmVxdWVzdE1ldGhvZCB7XHJcbiAgICBsZXQgbWV0aG9kOiBSZXF1ZXN0TWV0aG9kID0gUmVxdWVzdE1ldGhvZC5HZXQ7XHJcblxyXG4gICAgaWYgKHJlcXVlc3RDb250ZW50ID09PSBudWxsKSB7XHJcbiAgICAgIC8vIHJlcXVlc3RDb250ZW50ICg9PSBjb250ZW50IHRvIGJlIHNlbnQgdG8gc2VydmVyKSBpcyBhbGxvd2VkIG9ubHkgaW4gUE9TVCByZXF1ZXN0cy4gSW4gY2FzZSBubyBjb250ZW50IGlzIHJlcXVpcmVkLCBvcHQgZm9yIEdFVCAoZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBwZXJmb3JtYW5jZSByZWFzb24pLlxyXG4gICAgICBtZXRob2QgPSBSZXF1ZXN0TWV0aG9kLkdldDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAocmVxdWVzdFVSTC52YWx1ZS5sZW5ndGggKyAxICsgcmVxdWVzdENvbnRlbnQubGVuZ3RoIDw9IHRoaXMuX0hUVFBNYXhVUkxMZW5ndGgpIHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIHJlcXVlc3QgY29udGVudCB0byB0aGUgVVJMLCBhbmQgc3dpdGNoIHRvIHVzaW5nIGEgR0VUIHJlcXVlc3QuXHJcbiAgICAgICAgcmVxdWVzdFVSTC52YWx1ZSA9IHJlcXVlc3RVUkwudmFsdWUgKyBcIj9cIiArIHJlcXVlc3RDb250ZW50O1xyXG4gICAgICAgIG1ldGhvZCA9IFJlcXVlc3RNZXRob2QuR2V0O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1ldGhvZCA9IFJlcXVlc3RNZXRob2QuUG9zdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXRob2Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+R2V0cyBjb250ZW50cyBvZiBhIFVSTCwgdXNpbmcgZWl0aGVyIEdFVCBvciBQT1NUIG1ldGhvZHMuXHJcbiAgLy8vIFRoZSBtZXRob2QgZXhlY3V0ZXMgdGhlIEhUVFAgcmVxdWVzdCwgcmVhZHMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm4gdGhlIGNvbnRlbnQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXF1ZXN0VVJMXCI+VVJMIHRvIGJlIGFjY2Vzc2VkLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdENvbnRlbnRcIj5jb250ZW50IHRvIGJlIHNlbnQgdG8gc2VydmVyIChyZWxldmFudCBvbmx5IGZvciBQT1NUIG1ldGhvZCAtIGlzIG51bGwgZm9yIG90aGVyIG1ldGhvZHMpLjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPnJlc3BvbnNlIChmcm9tIHRoZSBzZXJ2ZXIpLjwvcmV0dXJucz5cclxuICBhc3luYyBHZXRDb250ZW50KHJlcXVlc3RVUkw6IHN0cmluZywgcmVxdWVzdENvbnRlbnQ6IGFueSwgdXNlQ2FjaGU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgbGV0IGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+ID0gbmV3IFJlZlBhcmFtKG51bGwpO1xyXG4gICAgbGV0IHJlcXVlc3RVcmxSZWY6IFJlZlBhcmFtPHN0cmluZz4gPSBuZXcgUmVmUGFyYW0ocmVxdWVzdFVSTCk7XHJcblxyXG4gICAgbGV0IGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QgPSB0aGlzLkRlY2lkZU9uUmVxdWVzdE1ldGhvZChyZXF1ZXN0Q29udGVudCwgcmVxdWVzdFVybFJlZik7XHJcbiAgICByZXF1ZXN0VVJMID0gcmVxdWVzdFVybFJlZi52YWx1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBFeGVjdXRlIHRoZSBodHRwIHJlcXVlc3RcclxuICAgICAgbGV0IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiA9IGF3YWl0IHRoaXMuRXhlY3V0ZUh0dHBSZXF1ZXN0KHJlcXVlc3RVUkwsIHJlcXVlc3RDb250ZW50LCB1c2VDYWNoZSwgaHR0cE1ldGhvZCwgY29udGVudEZyb21TZXJ2ZXIpO1xyXG5cclxuICAgICAgaWYocmVzcG9uc2UgIT0gbnVsbCkge1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKFwiSW5jb21pbmcgSGVhZGVycyA6IFwiICsgSHR0cENsaWVudEJhc2UuSGVhZGVyc1RvU3RyaW5nKHJlc3BvbnNlLmhlYWRlcnMsIHRydWUpKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHNlc3Npb24gY291bnRlciAod2hpY2ggd2lsbCBiZSBleHBlY3RlZCBieSB0aGUgc2VydmVyIGluIHRoZSBuZXh0IHJlcXVlc3QpLlxyXG4gICAgICAgIGxldCBuZXh0U2Vzc2lvbkNvdW50ZXJTdHJpbmc6IHN0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiTWd4cGFOZXh0U2Vzc2lvbkNvdW50ZXJcIi50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG5leHRTZXNzaW9uQ291bnRlclN0cmluZykpIHtcclxuICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuQ2hlY2tBbmRTZXRTZXNzaW9uQ291bnRlcigrbmV4dFNlc3Npb25Db3VudGVyU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG4gICAgICB0aHJvdyBleDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29udGVudEZyb21TZXJ2ZXIudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+VGhpcyBmdW5jdGlvbiBleGVjdXRlcyB0aGUgSFRUUCByZXF1ZXN0IGFuZCBtYWtlIHRoZSByZXNwb25zZSBvYmplY3QuIEl0IGNhbiBleGVjdXRlXHJcbiAgLy8vICAgR0VUIG9yIFBPU1QgcmVxdWVzdC4gSW4gY2FzZSBvZiBQT1NUIHJlcXVlc3QgdGhlIHZhcmlhYmxlcyB0byBzZXJ2ZXIgd2lsbCBjb250YWluIHRoZVxyXG4gIC8vLyAgIHZhcmlhYmxlcyB0byBiZSBzZW5kIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ1cmxTdHJpbmdcIj5VUkwgdG8gYmUgYWNjZXNzZWQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXF1ZXN0Q29udGVudFwiPmNvbnRlbnQgdG8gYmUgc2VudCB0byBzZXJ2ZXIgKHJlbGV2YW50IG9ubHkgZm9yIFBPU1QgbWV0aG9kIC0gaXMgbnVsbCBmb3Igb3RoZXIgbWV0aG9kcykuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJodHRwTWV0aG9kXCI+ZW51bSBSZXF1ZXN0TWV0aG9kIHRvIHNwZWNpZnkgdGhlIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBleGVjdXRlIHRoZSByZXF1ZXN0LjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udGVudEZyb21TZXJ2ZXJcIj5jb250ZW50IHJlY2VpdmVkIGZyb20gdGhlIHJlc3BvbnNlLiBbT1VUXTwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGFzeW5jIEV4ZWN1dGVIdHRwUmVxdWVzdCh1cmxTdHJpbmc6IHN0cmluZywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxhbnk+KTogUHJvbWlzZTxIdHRwUmVzcG9uc2U8c3RyaW5nPj5cclxuICB7XHJcbiAgICBsZXQgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5wcmVwYXJlUmVxdWVzdChodHRwTWV0aG9kLCB1cmxTdHJpbmcpO1xyXG5cclxuICAgIGxldCBodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyID0gSHR0cENsaWVudEV2ZW50cy5HZXRIdHRwQ29tbXVuaWNhdGlvblRpbWVvdXQoKTtcclxuICAgIGxldCBjbGllbnRJRDogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRHbG9iYWxVbmlxdWVTZXNzaW9uSUQoKTtcclxuXHJcbiAgICBsZXQgZXhlY3V0aW9uQXR0ZW1wdHM6IG51bWJlciA9IDA7ICAvLyBmb3IgbG9nZ2luZyBwdXJwb3NlIG9ubHkuXHJcblxyXG4gICAgbGV0IHN0YXJ0VGltZTogbnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuXHJcbiAgICAvLyBSZXRyeWluZzpcclxuICAgIC8vICAgIElzIGNvbnRyb2xsZWQgYnk6XHJcbiAgICAvLyAgICAgICAoSSkgIFRoZSBtZXRob2QgdmFyaWFibGUgJ2h0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TJyAoYWJvdmUpLFxyXG4gICAgLy8gICAgICAgKElJKSBUaGUgY2xhc3MgbWVtYmVyICdDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyJyAoYWJvdmUpLlxyXG4gICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgZXhlY3V0aW9uQXR0ZW1wdHMrKztcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50IFRMUyBwcm90b2NvbC5cclxuICAgICAgICAvLyBsZXQgdXNlSGlnaGVzdFNlY3VyaXR5UHJvdG9jb2w6IGJvb2xlYW4gPSBIdHRwQ2xpZW50QmFzZS5HZXRVc2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCgpO1xyXG4gICAgICAgIC8vIGlmICh1c2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCkge1xyXG4gICAgICAgIC8vICAgU2VydmljZVBvaW50TWFuYWdlci5TZWN1cml0eVByb3RvY29sID0gU2VjdXJpdHlQcm90b2NvbFR5cGUuVGxzMTI7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyBEbyBub3QgYWRkIE1neHBhUklBZ2xvYmFsVW5pcXVlU2Vzc2lvbklEIHdoaWxlIGdldHRpbmcgZXhlY3V0aW9uIHByb3BlcnRpZXNcclxuICAgICAgICAvLyBUT0RPOiBoZWFkZXJzIHNob3VsZCBub3QgYmUgc2VudCBmb3IgY2FjaGVkIGZpbGUgcmVxdWVzdHNcclxuICAgICAgICBsZXQgaHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcblxyXG4gICAgICAgIGh0dHBIZWFkZXJzID0gdGhpcy5hZGRIZWFkZXJzKHVybFN0cmluZywgdXNlQ2FjaGUsIGh0dHBIZWFkZXJzLCBjbGllbnRJRCk7XHJcblxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiUmVxdWVzdCBUaW1lb3V0IHNldCB0byB7MH0gbXNcIiwgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuXHJcbiAgICAgICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYykge1xyXG4gICAgICAgICAgbGV0IGNvbnRlbnRMZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgICAgICAgICBpZiAoaHR0cE1ldGhvZCA9PT0gUmVxdWVzdE1ldGhvZC5HZXQpIHtcclxuICAgICAgICAgICAgbGV0IHBhcnRzOiBzdHJpbmdbXSA9IHVybFN0cmluZy5zcGxpdCgnPycpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gcGFydHNbMV0ubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSAvLyAoaHR0cFJlcXVlc3QubWV0aG9kID09PSBSZXF1ZXN0TWV0aG9kLlBvc3QpXHJcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSByZXF1ZXN0Q29udGVudC5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNUb0xvZyhMb2dnZXJfTWVzc2FnZURpcmVjdGlvbi5NZXNzYWdlTGVhdmluZyxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRSdW50aW1lQ3R4SUQoKSxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRTZXNzaW9uQ291bnRlcigpLFxyXG4gICAgICAgICAgICBjbGllbnRJRCxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5TaG91bGREaXNwbGF5R2VuZXJpY0Vycm9yKCkgPyBcIi1cIiA6IG5ldyBVUkwodXJsU3RyaW5nKS5ob3N0LFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAnLScsXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGh0dHBIZWFkZXJzKSxcclxuICAgICAgICAgICAgY29udGVudExlbmd0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCk7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJBY2Nlc3NpbmcgKG1ldGhvZDogJ3swfScpOiAnezF9J1wiLCBodHRwTWV0aG9kLCB1cmxTdHJpbmcpKTtcclxuXHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coXCJPdXRnb2luZyBIZWFkZXJzIDogXCIgKyBIdHRwQ2xpZW50QmFzZS5IZWFkZXJzVG9TdHJpbmcoaHR0cEhlYWRlcnMsIGZhbHNlKSk7XHJcblxyXG4gICAgICAgIGlmIChodHRwTWV0aG9kID09PSBSZXF1ZXN0TWV0aG9kLlBvc3QpIHtcclxuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBFeHBlY3QxMDBDb250aW51ZS5cclxuICAgICAgICAgIC8vIGh0dHBXZWJSZXF1ZXN0LlNlcnZpY2VQb2ludC5FeHBlY3QxMDBDb250aW51ZSA9IHRoaXMuR2V0SFRUUEV4cGVjdDEwMENvbnRpbnVlKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLldyaXRlQ29udGVudFRvUmVxdWVzdChyZXF1ZXN0Q29udGVudCwgaHR0cFdlYlJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgICAgIC8vIHNlbmQgdGhlIHJlcXVlc3QgJiBnZXQgdGhlIHJlc3BvbnNlOlxyXG4gICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgICAvLyBUT0RPIDogSGFuZGxlIGVycm9yc1xyXG4gICAgICAgIC8vIFRPRE86IEhhbmRsZSB0aW1lb3V0XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0VGltZTpudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgICB0aGlzLkxvZ1JlcXVlc3RJbmZvKCFpc051bGxPclVuZGVmaW5lZChyZXF1ZXN0Q29udGVudCkgPyByZXF1ZXN0Q29udGVudC5sZW5ndGggOiAwLCByZXF1ZXN0VGltZSwgZmFsc2UpO1xyXG5cclxuICAgICAgICBodHRwUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0VG9TZXJ2ZXIoaHR0cE1ldGhvZCwgdXJsU3RyaW5nLCBodHRwSGVhZGVycywgcmVxdWVzdENvbnRlbnQsIGNvbnRlbnRGcm9tU2VydmVyLCB0aW1lQmVmb3JlUmVxdWVzdCwgY2xpZW50SUQpO1xyXG5cclxuICAgICAgICB0aGlzLmxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZSwgY2xpZW50SUQsIHVybFN0cmluZywgY29udGVudEZyb21TZXJ2ZXIsIHRpbWVCZWZvcmVSZXF1ZXN0KTtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2dSZXF1ZXN0SW5mbyghaXNOdWxsT3JVbmRlZmluZWQocmVxdWVzdENvbnRlbnQpID8gcmVxdWVzdENvbnRlbnQubGVuZ3RoIDogMCwgTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKSAtIHJlcXVlc3RUaW1lLCB0cnVlKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYylcclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUJhc2ljRXJyb3JUb0xvZyhIdHRwQ2xpZW50RXZlbnRzLkdldFJ1bnRpbWVDdHhJRCgpLFxyXG4gICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkdldFNlc3Npb25Db3VudGVyKCksXHJcbiAgICAgICAgICAgIGNsaWVudElELFxyXG4gICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLlNob3VsZERpc3BsYXlHZW5lcmljRXJyb3IoKSA/IFwiLVwiIDogbmV3IFVSTCh1cmxTdHJpbmcpLmhvc3QsXHJcbiAgICAgICAgICAgIGV4KTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG5cclxuICAgICAgICB0aGlzLmhhbmRsZUh0dHBFcnJvckV4Y2VwdGlvbihleCwgdXJsU3RyaW5nKTtcclxuXHJcbiAgICAgICAgbGV0IHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPiA9IG5ldyBSZWZQYXJhbTxudW1iZXI+KHN0YXJ0VGltZSk7XHJcbiAgICAgICAgaWYodGhpcy5zaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUywgdXJsU3RyaW5nLCB0aGlzLkNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4LCBzdGFydFRpbWVSZWYpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZVJlZi52YWx1ZTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sb2dBbmRUaHJvd0V4Y2VwdGlvbihleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ0V4ZWN1dGlvbkF0dGVtcHRzKGV4ZWN1dGlvbkF0dGVtcHRzKTtcclxuXHJcbiAgICByZXR1cm4gaHR0cFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBMb2cgdGhlIHJlcXVlc3QgaW5mbyB3aGlsZSBzZW5kaW5nIHJlcXVlc3QvYWZ0ZXIgcmVjZWl2aW5nIHJlc3BvbnNlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIExvZ1JlcXVlc3RJbmZvKGNvbnRlbnRMZW5ndGg6IG51bWJlciwgcm91bmRUcmlwOiBudW1iZXIsIGlzTG9nZ2luZ1Jlc3BvbnNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoTG9nZ2VyLkluc3RhbmNlLkxvZ0xldmVsID09IExvZ2dlcl9Mb2dMZXZlbHMuUmVxdWVzdEluZm8pIHtcclxuICAgICAgSHR0cENsaWVudEV2ZW50cy5Db21wdXRlQW5kTG9nUmVxdWVzdEluZm8oY29udGVudExlbmd0aCwgcm91bmRUcmlwLCBpc0xvZ2dpbmdSZXNwb25zZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+V3JpdGUgTWcqIHByZWZpeGVkIGhlYWRlcnMgdG8gc3RyaW5nIGluIGZvcm1hdCBcIkhFQURFUjE6VkFMVUUxIEhFQURFUjI6VkFMVUUyIC4uLlwiPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImhlYWRlcnNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJGaWx0ZXJcIj5pZiB0cnVlLCBsaXN0IG9ubHkgaGVhZGVycyBwcmVmaXhlZCB3aXRoIFwiTWdcIjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSGVhZGVyc1RvU3RyaW5nKGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBiRmlsdGVyOiBib29sZWFuKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBsZXQgaGVhZGVyc1N0cjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcbiAgICBsZXQgaGVhZGVyS2V5czogc3RyaW5nW10gPSBoZWFkZXJzLmtleXMoKTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gaGVhZGVyS2V5cykge1xyXG4gICAgICAvLyBmaWx0ZXIgb25seSBoZWFkZXJzIHRoYXQgYXJlIHByZWZpeGVkIHdpdGggTWcqIChzZW50IGZyb20gdGhlIE1pZGRsZXdhcmUgYW5kIFNlcnZlcik6XHJcbiAgICAgIGlmICghYkZpbHRlciB8fCBoZWFkZXJLZXlzW2tleV0uc3RhcnRzV2l0aChcIk1nXCIpKVxyXG4gICAgICAgIGhlYWRlcnNTdHIuQXBwZW5kKE5TdHJpbmcuRm9ybWF0KFwiezB9OnsxfSBcIiwgaGVhZGVyS2V5c1trZXldLCBoZWFkZXJzLmdldChoZWFkZXJLZXlzW2tleV0pKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGhlYWRlcnNTdHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+UmV0dXJuIHRoZSBwcm9wZXJ0eSB3aGljaCBkZWNpZGUgd2hldGhlciB0byBzZXQgSFRUUCBoZWFkZXIgXCJFeHBlY3Q6MTAwQ29udGludWVcIjwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+Ym9vbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBHZXRIVFRQRXhwZWN0MTAwQ29udGludWUoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBleGVjdXRpb25Qcm9wZXJ0eTogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRFeGVjdXRpb25Qcm9wZXJ0eShIVFRQX0VYUEVDVDEwMENPTlRJTlVFKTtcclxuXHJcbiAgICAvLyBJbiBjYXNlIHRoZSBwcm9wZXJ0eSBpcyBub3QgZ2l2ZW4gaW4gdGhlIGV4ZWN1dGlvbiBwcm9wZXJ0aWVzLCBpdCBzaG91bGQgZGVmYXVsdCB0byB0cnVlXHJcbiAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShleGVjdXRpb25Qcm9wZXJ0eSkpXHJcbiAgICAgIHJlc3VsdCA9IChleGVjdXRpb25Qcm9wZXJ0eS50b1VwcGVyQ2FzZSgpID09PSBcIllcIik7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5SZXR1cm4gdGhlIHByb3BlcnR5IHdoaWNoIGFsbG93cyB0byB1c2UgVExTIHYxLjIgKGltcGxlbWVudGVkIGF0IC5ORVQgdjQuNSkgYXMgYSBoaWdoZXN0IFRMUyBwcm90b2NvbCB2ZXJzaW9uLlxyXG4gIC8vLyBPdGhlcndpc2UgdXNlIFRMUyB2MS4wIGFzIGEgaGlnaGVzdCBUTFMgcHJvdG9jb2wgdmVyc2lvbjwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+Ym9vbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBHZXRVc2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCgpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxldCBleGVjdXRpb25Qcm9wZXJ0eTogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRFeGVjdXRpb25Qcm9wZXJ0eShVU0VfSElHSEVTVF9TRUNVUklUWV9QUk9UT0NPTCk7XHJcblxyXG4gICAgLy8gSW4gY2FzZSB0aGUgcHJvcGVydHkgaXMgbm90IGdpdmVuIGluIHRoZSBleGVjdXRpb24gcHJvcGVydGllcywgaXQgc2hvdWxkIGRlZmF1bHQgdG8gZmFsc2UgKGEgaGlnaGVzdCBUTFMgcHJvdG9jb2wgdmVyc2lvbiBpcyB2MS4wKVxyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoZXhlY3V0aW9uUHJvcGVydHkpKVxyXG4gICAgICByZXN1bHQgPSAoZXhlY3V0aW9uUHJvcGVydHkudG9VcHBlckNhc2UoKSA9PT0gXCJZXCIpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLyBBYnN0cmFjdCBtZXRob2RzXHJcbiAgYWJzdHJhY3QgcHJlcGFyZVJlcXVlc3QoaHR0cE1ldGhvZDpSZXF1ZXN0TWV0aG9kICwgdXJsU3RyaW5nOiBzdHJpbmcpO1xyXG4gIGFic3RyYWN0IGFkZEhlYWRlcnModXJsU3RyaW5nOiBzdHJpbmcsIHVzZUNhY2hlOiBib29sZWFuLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIGNsaWVudElEOiBzdHJpbmcpOiBIdHRwSGVhZGVycztcclxuICBhYnN0cmFjdCBhc3luYyBzZW5kUmVxdWVzdFRvU2VydmVyKGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIHVybFN0cmluZzogc3RyaW5nLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+LCB0aW1lQmVmb3JlUmVxdWVzdDogbnVtYmVyLCBjbGllbnRJRDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xyXG4gIGFic3RyYWN0IGxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4sIGNsaWVudElEOiBzdHJpbmcsIHVybFN0cmluZzogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55PiwgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlcik7XHJcbiAgYWJzdHJhY3QgaGFuZGxlSHR0cEVycm9yRXhjZXB0aW9uKGV4OiBhbnksIHVybFN0cmluZzogc3RyaW5nKTtcclxuICBhYnN0cmFjdCBhc3luYyBzaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyLCB1cmxTdHJpbmc6IHN0cmluZywgY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcjogSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4OiBhbnksIHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPik7XHJcbiAgYWJzdHJhY3QgbG9nQW5kVGhyb3dFeGNlcHRpb24oZXg6IGFueSk7XHJcbiAgYWJzdHJhY3QgbG9nRXhlY3V0aW9uQXR0ZW1wdHMoZXhlY3V0aW9uQXR0ZW1wdHM6IG51bWJlcik7XHJcbn1cclxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXpGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFHL0QsTUFBTSxzQkFBc0IsR0FBVyxtQkFBbUIsQ0FBQztBQUMzRCxNQUFNLDZCQUE2QixHQUFXLDRCQUE0QixDQUFDO0FBRTNFLE1BQU0sQ0FBTixJQUFZLGFBU1g7QUFURCxXQUFZLGFBQWE7SUFFdkIsK0NBQU8sQ0FBQTtJQUNQLGlEQUFRLENBQUE7SUFDUiwrQ0FBTyxDQUFBO0lBQ1AscURBQVUsQ0FBQTtJQUNWLHVEQUFXLENBQUE7SUFDWCxpREFBUSxDQUFBO0lBQ1IsbURBQVMsQ0FBQTtBQUNYLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQVVELE1BQU0sT0FBZ0IsY0FBYztJQVVsQztRQVRRLHNCQUFpQixHQUFXLElBQUksQ0FBQztRQU96QyxpQ0FBNEIsR0FBa0MsSUFBSSxDQUFDO1FBR2pFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQU9PLHFCQUFxQixDQUFDLGNBQXNCLEVBQUUsVUFBNEI7UUFDaEYsSUFBSSxNQUFNLEdBQWtCLGFBQWEsQ0FBQyxHQUFHLENB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Qyx3QkFBd0I7UUFDckMsSUFBSSxNQUFNLEdBQVksSUFBSSxDQUFDO1FBQzNCLElBQUksaUJBQWlCLEdBQVcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUc5RixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBS08sTUFBTSxDQUFDLDZCQUE2QjtRQUMxQyxJQUFJLE1BQU0sR0FBWSxLQUFLLENBQUM7UUFDNUIsSUFBSSxpQkFBaUIsR0FBVyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBR3JHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1lBQzNDLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRXJELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FXRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TlN0cmluZywgUmVmUGFyYW0sIFN0cmluZ0J1aWxkZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyX0xvZ0xldmVscywgTG9nZ2VyX01lc3NhZ2VEaXJlY3Rpb24sIE1pc2N9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7SUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJ9IGZyb20gXCIuL0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyXCI7XHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJ1dGlsXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudEV2ZW50c30gZnJvbSBcIi4vSHR0cENsaWVudEV2ZW50c1wiO1xyXG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwUmVzcG9uc2V9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5cclxuLy8gZXhlY3V0aW9uIHByb3BlcnRpZXNcclxuY29uc3QgSFRUUF9FWFBFQ1QxMDBDT05USU5VRTogc3RyaW5nID0gXCJFeHBlY3QxMDBDb250aW51ZVwiOyAvLyBBZGQgSFRUUCBoZWFkZXIgXCJFeHBlY3Q6MTAwQ29udGludWVcIlxyXG5jb25zdCBVU0VfSElHSEVTVF9TRUNVUklUWV9QUk9UT0NPTDogc3RyaW5nID0gXCJVc2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbFwiOyAvLyBUaGlzIHByb3BlcnR5IGRlY2lkZXMgdG8gdXNlIFRMUyB2MS4yIChpbXBsZW1lbnRlZCBhdCAuTkVUIHY0LjUpIG9yIFRMUyB2MS4wXHJcblxyXG5leHBvcnQgZW51bSBSZXF1ZXN0TWV0aG9kXHJcbntcclxuICBHZXQgPSAwLFxyXG4gIFBvc3QgPSAxLFxyXG4gIFB1dCA9IDIsXHJcbiAgRGVsZXRlID0gMyxcclxuICBPcHRpb25zID0gNCxcclxuICBIZWFkID0gNSxcclxuICBQYXRjaCA9IDZcclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gdGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3I6XHJcbi8vLyAgICAoaSkgZGVjaWRpbmcgd2hpY2ggbWV0aG9kIHRvIHVzZSAoR0VUL1BPU1QpLlxyXG4vLy8gICAoaWkpIGhhbmRsaW5nIGNvbW11bmljYXRpb24gZmFpbHVyZXMuXHJcbi8vLyAgKGlpaSkgYWRkaW5nIEhUVFAgaGVhZGVycyB0byByZXF1ZXN0cy5cclxuLy8vICAoaVYpIHJldHJpZXZpbmcgSFRUUCBoZWFkZXJzIGZyb20gcmVzcG9uc2VzLlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBDbGllbnRCYXNlIHtcclxuICBwcml2YXRlIF9IVFRQTWF4VVJMTGVuZ3RoOiBudW1iZXIgPSAyMDQ4O1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEdldHMgb3Igc2V0cyBhIGhhbmRsZXIgZm9yIGNvbW11bmljYXRpb25zIGZhaWx1cmUuIFRoaXMgcHJvcGVydHkgbWF5IGJlXHJcbiAgLy8vIHNldCB0byBudWxsLCBpbiB3aGljaCBjYXNlIHRoZSBIdHRwQ2xpZW50QmFzZSB3aWxsIGF1dG9tYXRpY2FsbHkgZmFpbCBhZnRlclxyXG4gIC8vLyB0aGUgZmlyc3QgcmVjb25uZWN0aW9uIGF0dGVtcHQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyOiBJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlciA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5Db21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUmV0dXJucyB0aGUgcmVxdWVzdCBtZXRob2QgKFBPU1Qgb3IgR0VUKSBiYXNlZCBvbiBpdHMgY29udGVudHMgYW5kIGxlbmd0aC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInJlcXVlc3RVUkxcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBEZWNpZGVPblJlcXVlc3RNZXRob2QocmVxdWVzdENvbnRlbnQ6IHN0cmluZywgcmVxdWVzdFVSTDogUmVmUGFyYW08c3RyaW5nPik6IFJlcXVlc3RNZXRob2Qge1xyXG4gICAgbGV0IG1ldGhvZDogUmVxdWVzdE1ldGhvZCA9IFJlcXVlc3RNZXRob2QuR2V0O1xyXG5cclxuICAgIGlmIChyZXF1ZXN0Q29udGVudCA9PT0gbnVsbCkge1xyXG4gICAgICAvLyByZXF1ZXN0Q29udGVudCAoPT0gY29udGVudCB0byBiZSBzZW50IHRvIHNlcnZlcikgaXMgYWxsb3dlZCBvbmx5IGluIFBPU1QgcmVxdWVzdHMuIEluIGNhc2Ugbm8gY29udGVudCBpcyByZXF1aXJlZCwgb3B0IGZvciBHRVQgKGZvciB0aGUgYWZvcmVtZW50aW9uZWQgcGVyZm9ybWFuY2UgcmVhc29uKS5cclxuICAgICAgbWV0aG9kID0gUmVxdWVzdE1ldGhvZC5HZXQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHJlcXVlc3RVUkwudmFsdWUubGVuZ3RoICsgMSArIHJlcXVlc3RDb250ZW50Lmxlbmd0aCA8PSB0aGlzLl9IVFRQTWF4VVJMTGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gYXBwZW5kIHRoZSByZXF1ZXN0IGNvbnRlbnQgdG8gdGhlIFVSTCwgYW5kIHN3aXRjaCB0byB1c2luZyBhIEdFVCByZXF1ZXN0LlxyXG4gICAgICAgIHJlcXVlc3RVUkwudmFsdWUgPSByZXF1ZXN0VVJMLnZhbHVlICsgXCI/XCIgKyByZXF1ZXN0Q29udGVudDtcclxuICAgICAgICBtZXRob2QgPSBSZXF1ZXN0TWV0aG9kLkdldDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBtZXRob2QgPSBSZXF1ZXN0TWV0aG9kLlBvc3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWV0aG9kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PkdldHMgY29udGVudHMgb2YgYSBVUkwsIHVzaW5nIGVpdGhlciBHRVQgb3IgUE9TVCBtZXRob2RzLlxyXG4gIC8vLyBUaGUgbWV0aG9kIGV4ZWN1dGVzIHRoZSBIVFRQIHJlcXVlc3QsIHJlYWRzIHRoZSByZXNwb25zZSBhbmQgcmV0dXJuIHRoZSBjb250ZW50LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdFVSTFwiPlVSTCB0byBiZSBhY2Nlc3NlZC48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInJlcXVlc3RDb250ZW50XCI+Y29udGVudCB0byBiZSBzZW50IHRvIHNlcnZlciAocmVsZXZhbnQgb25seSBmb3IgUE9TVCBtZXRob2QgLSBpcyBudWxsIGZvciBvdGhlciBtZXRob2RzKS48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5yZXNwb25zZSAoZnJvbSB0aGUgc2VydmVyKS48L3JldHVybnM+XHJcbiAgYXN5bmMgR2V0Q29udGVudChyZXF1ZXN0VVJMOiBzdHJpbmcsIHJlcXVlc3RDb250ZW50OiBhbnksIHVzZUNhY2hlOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGxldCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08c3RyaW5nPiA9IG5ldyBSZWZQYXJhbShudWxsKTtcclxuICAgIGxldCByZXF1ZXN0VXJsUmVmOiBSZWZQYXJhbTxzdHJpbmc+ID0gbmV3IFJlZlBhcmFtKHJlcXVlc3RVUkwpO1xyXG5cclxuICAgIGxldCBodHRwTWV0aG9kOiBSZXF1ZXN0TWV0aG9kID0gdGhpcy5EZWNpZGVPblJlcXVlc3RNZXRob2QocmVxdWVzdENvbnRlbnQsIHJlcXVlc3RVcmxSZWYpO1xyXG4gICAgcmVxdWVzdFVSTCA9IHJlcXVlc3RVcmxSZWYudmFsdWU7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gRXhlY3V0ZSB0aGUgaHR0cCByZXF1ZXN0XHJcbiAgICAgIGxldCByZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gPSBhd2FpdCB0aGlzLkV4ZWN1dGVIdHRwUmVxdWVzdChyZXF1ZXN0VVJMLCByZXF1ZXN0Q29udGVudCwgdXNlQ2FjaGUsIGh0dHBNZXRob2QsIGNvbnRlbnRGcm9tU2VydmVyKTtcclxuXHJcbiAgICAgIGlmKHJlc3BvbnNlICE9IG51bGwpIHtcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhcIkluY29taW5nIEhlYWRlcnMgOiBcIiArIEh0dHBDbGllbnRCYXNlLkhlYWRlcnNUb1N0cmluZyhyZXNwb25zZS5oZWFkZXJzLCB0cnVlKSk7XHJcblxyXG4gICAgICAgIC8vIHNldCB0aGUgbmV4dCBzZXNzaW9uIGNvdW50ZXIgKHdoaWNoIHdpbGwgYmUgZXhwZWN0ZWQgYnkgdGhlIHNlcnZlciBpbiB0aGUgbmV4dCByZXF1ZXN0KS5cclxuICAgICAgICBsZXQgbmV4dFNlc3Npb25Db3VudGVyU3RyaW5nOiBzdHJpbmcgPSByZXNwb25zZS5oZWFkZXJzLmdldChcIk1neHBhTmV4dFNlc3Npb25Db3VudGVyXCIudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChuZXh0U2Vzc2lvbkNvdW50ZXJTdHJpbmcpKSB7XHJcbiAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkNoZWNrQW5kU2V0U2Vzc2lvbkNvdW50ZXIoK25leHRTZXNzaW9uQ291bnRlclN0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nKGV4KTtcclxuICAgICAgdGhyb3cgZXg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlRoaXMgZnVuY3Rpb24gZXhlY3V0ZXMgdGhlIEhUVFAgcmVxdWVzdCBhbmQgbWFrZSB0aGUgcmVzcG9uc2Ugb2JqZWN0LiBJdCBjYW4gZXhlY3V0ZVxyXG4gIC8vLyAgIEdFVCBvciBQT1NUIHJlcXVlc3QuIEluIGNhc2Ugb2YgUE9TVCByZXF1ZXN0IHRoZSB2YXJpYWJsZXMgdG8gc2VydmVyIHdpbGwgY29udGFpbiB0aGVcclxuICAvLy8gICB2YXJpYWJsZXMgdG8gYmUgc2VuZCB0byB0aGUgc2VydmVyLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidXJsU3RyaW5nXCI+VVJMIHRvIGJlIGFjY2Vzc2VkLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdENvbnRlbnRcIj5jb250ZW50IHRvIGJlIHNlbnQgdG8gc2VydmVyIChyZWxldmFudCBvbmx5IGZvciBQT1NUIG1ldGhvZCAtIGlzIG51bGwgZm9yIG90aGVyIG1ldGhvZHMpLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaHR0cE1ldGhvZFwiPmVudW0gUmVxdWVzdE1ldGhvZCB0byBzcGVjaWZ5IHRoZSBtZXRob2QgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZXhlY3V0ZSB0aGUgcmVxdWVzdC48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRlbnRGcm9tU2VydmVyXCI+Y29udGVudCByZWNlaXZlZCBmcm9tIHRoZSByZXNwb25zZS4gW09VVF08L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBhc3luYyBFeGVjdXRlSHR0cFJlcXVlc3QodXJsU3RyaW5nOiBzdHJpbmcsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcsIHVzZUNhY2hlOiBib29sZWFuLCBodHRwTWV0aG9kOiBSZXF1ZXN0TWV0aG9kLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55Pik6IFByb21pc2U8SHR0cFJlc3BvbnNlPHN0cmluZz4+XHJcbiAge1xyXG4gICAgbGV0IGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gPSBudWxsO1xyXG5cclxuICAgIHRoaXMucHJlcGFyZVJlcXVlc3QoKTtcclxuXHJcbiAgICBsZXQgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVM6IG51bWJlciA9IEh0dHBDbGllbnRFdmVudHMuR2V0SHR0cENvbW11bmljYXRpb25UaW1lb3V0KCk7XHJcbiAgICBsZXQgY2xpZW50SUQ6IHN0cmluZyA9IEh0dHBDbGllbnRFdmVudHMuR2V0R2xvYmFsVW5pcXVlU2Vzc2lvbklEKCk7XHJcblxyXG4gICAgbGV0IGV4ZWN1dGlvbkF0dGVtcHRzOiBudW1iZXIgPSAwOyAgLy8gZm9yIGxvZ2dpbmcgcHVycG9zZSBvbmx5LlxyXG5cclxuICAgIGxldCBzdGFydFRpbWU6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCk7XHJcblxyXG4gICAgLy8gUmV0cnlpbmc6XHJcbiAgICAvLyAgICBJcyBjb250cm9sbGVkIGJ5OlxyXG4gICAgLy8gICAgICAgKEkpICBUaGUgbWV0aG9kIHZhcmlhYmxlICdodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUycgKGFib3ZlKSxcclxuICAgIC8vICAgICAgIChJSSkgVGhlIGNsYXNzIG1lbWJlciAnQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcicgKGFib3ZlKS5cclxuICAgIHdoaWxlICh0cnVlKSB7XHJcbiAgICAgIGV4ZWN1dGlvbkF0dGVtcHRzKys7XHJcblxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIC8vIFRPRE86IGltcGxlbWVudCBUTFMgcHJvdG9jb2wuXHJcbiAgICAgICAgLy8gbGV0IHVzZUhpZ2hlc3RTZWN1cml0eVByb3RvY29sOiBib29sZWFuID0gSHR0cENsaWVudEJhc2UuR2V0VXNlSGlnaGVzdFNlY3VyaXR5UHJvdG9jb2woKTtcclxuICAgICAgICAvLyBpZiAodXNlSGlnaGVzdFNlY3VyaXR5UHJvdG9jb2wpIHtcclxuICAgICAgICAvLyAgIFNlcnZpY2VQb2ludE1hbmFnZXIuU2VjdXJpdHlQcm90b2NvbCA9IFNlY3VyaXR5UHJvdG9jb2xUeXBlLlRsczEyO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8gRG8gbm90IGFkZCBNZ3hwYVJJQWdsb2JhbFVuaXF1ZVNlc3Npb25JRCB3aGlsZSBnZXR0aW5nIGV4ZWN1dGlvbiBwcm9wZXJ0aWVzXHJcbiAgICAgICAgLy8gVE9ETzogaGVhZGVycyBzaG91bGQgbm90IGJlIHNlbnQgZm9yIGNhY2hlZCBmaWxlIHJlcXVlc3RzXHJcbiAgICAgICAgbGV0IGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG5cclxuICAgICAgICBodHRwSGVhZGVycyA9IHRoaXMuYWRkSGVhZGVycyh1cmxTdHJpbmcsIHVzZUNhY2hlLCBodHRwSGVhZGVycywgY2xpZW50SUQpO1xyXG5cclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhOU3RyaW5nLkZvcm1hdChcIlJlcXVlc3QgVGltZW91dCBzZXQgdG8gezB9IG1zXCIsIGh0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TKSk7XHJcblxyXG4gICAgICAgIGlmIChMb2dnZXIuSW5zdGFuY2UuTG9nTGV2ZWwgPT09IExvZ2dlcl9Mb2dMZXZlbHMuQmFzaWMpIHtcclxuICAgICAgICAgIGxldCBjb250ZW50TGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gICAgICAgICAgaWYgKGh0dHBNZXRob2QgPT09IFJlcXVlc3RNZXRob2QuR2V0KSB7XHJcbiAgICAgICAgICAgIGxldCBwYXJ0czogc3RyaW5nW10gPSB1cmxTdHJpbmcuc3BsaXQoJz8nKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpXHJcbiAgICAgICAgICAgICAgY29udGVudExlbmd0aCA9IHBhcnRzWzFdLmxlbmd0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgLy8gKGh0dHBSZXF1ZXN0Lm1ldGhvZCA9PT0gUmVxdWVzdE1ldGhvZC5Qb3N0KVxyXG4gICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gcmVxdWVzdENvbnRlbnQubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUJhc2ljVG9Mb2coTG9nZ2VyX01lc3NhZ2VEaXJlY3Rpb24uTWVzc2FnZUxlYXZpbmcsXHJcbiAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuR2V0UnVudGltZUN0eElEKCksXHJcbiAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuR2V0U2Vzc2lvbkNvdW50ZXIoKSxcclxuICAgICAgICAgICAgY2xpZW50SUQsXHJcbiAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuU2hvdWxkRGlzcGxheUdlbmVyaWNFcnJvcigpID8gXCItXCIgOiBuZXcgVVJMKHVybFN0cmluZykuaG9zdCxcclxuICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgJy0nLFxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShodHRwSGVhZGVycyksXHJcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHRpbWVCZWZvcmVSZXF1ZXN0OiBudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpO1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiQWNjZXNzaW5nIChtZXRob2Q6ICd7MH0nKTogJ3sxfSdcIiwgaHR0cE1ldGhvZCwgdXJsU3RyaW5nKSk7XHJcblxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKFwiT3V0Z29pbmcgSGVhZGVycyA6IFwiICsgSHR0cENsaWVudEJhc2UuSGVhZGVyc1RvU3RyaW5nKGh0dHBIZWFkZXJzLCBmYWxzZSkpO1xyXG5cclxuICAgICAgICBpZiAoaHR0cE1ldGhvZCA9PT0gUmVxdWVzdE1ldGhvZC5Qb3N0KSB7XHJcbiAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgRXhwZWN0MTAwQ29udGludWUuXHJcbiAgICAgICAgICAvLyBodHRwV2ViUmVxdWVzdC5TZXJ2aWNlUG9pbnQuRXhwZWN0MTAwQ29udGludWUgPSB0aGlzLkdldEhUVFBFeHBlY3QxMDBDb250aW51ZSgpO1xyXG4gICAgICAgICAgLy8gdGhpcy5Xcml0ZUNvbnRlbnRUb1JlcXVlc3QocmVxdWVzdENvbnRlbnQsIGh0dHBXZWJSZXF1ZXN0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgICAvLyBzZW5kIHRoZSByZXF1ZXN0ICYgZ2V0IHRoZSByZXNwb25zZTpcclxuICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAgICAgLy8gVE9ETyA6IEhhbmRsZSBlcnJvcnNcclxuICAgICAgICAvLyBUT0RPOiBIYW5kbGUgdGltZW91dFxyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdFRpbWU6bnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2dSZXF1ZXN0SW5mbyghaXNOdWxsT3JVbmRlZmluZWQocmVxdWVzdENvbnRlbnQpID8gcmVxdWVzdENvbnRlbnQubGVuZ3RoIDogMCwgcmVxdWVzdFRpbWUsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgaHR0cFJlc3BvbnNlID0gYXdhaXQgdGhpcy5zZW5kUmVxdWVzdFRvU2VydmVyKGh0dHBNZXRob2QsIHVybFN0cmluZywgaHR0cEhlYWRlcnMsIHJlcXVlc3RDb250ZW50LCBjb250ZW50RnJvbVNlcnZlcik7XHJcblxyXG4gICAgICAgIHRoaXMubG9nUmVzcG9uc2UoaHR0cFJlc3BvbnNlLCBjbGllbnRJRCwgdXJsU3RyaW5nLCBjb250ZW50RnJvbVNlcnZlciwgdGltZUJlZm9yZVJlcXVlc3QpO1xyXG5cclxuICAgICAgICB0aGlzLkxvZ1JlcXVlc3RJbmZvKCFpc051bGxPclVuZGVmaW5lZChyZXF1ZXN0Q29udGVudCkgPyByZXF1ZXN0Q29udGVudC5sZW5ndGggOiAwLCBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpIC0gcmVxdWVzdFRpbWUsIHRydWUpO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgICBpZiAoTG9nZ2VyLkluc3RhbmNlLkxvZ0xldmVsID09PSBMb2dnZXJfTG9nTGV2ZWxzLkJhc2ljKVxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNFcnJvclRvTG9nKCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nKGV4KTtcclxuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVIdHRwRXJyb3JFeGNlcHRpb24oZXgsIHVybFN0cmluZyk7XHJcblxyXG4gICAgICAgIGxldCBzdGFydFRpbWVSZWY6IFJlZlBhcmFtPG51bWJlcj4gPSBuZXcgUmVmUGFyYW08bnVtYmVyPihzdGFydFRpbWUpO1xyXG4gICAgICAgIGlmKHRoaXMuc2hvdWxkUmV0cnkoaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMsIHVybFN0cmluZywgdGhpcy5Db21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyLCBleCwgc3RhcnRUaW1lUmVmKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICBzdGFydFRpbWUgPSBzdGFydFRpbWVSZWYudmFsdWU7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9nQW5kVGhyb3dFeGNlcHRpb24oZXgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0cyk7XHJcblxyXG4gICAgcmV0dXJuIGh0dHBSZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gTG9nIHRoZSByZXF1ZXN0IGluZm8gd2hpbGUgc2VuZGluZyByZXF1ZXN0L2FmdGVyIHJlY2VpdmluZyByZXNwb25zZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBMb2dSZXF1ZXN0SW5mbyhjb250ZW50TGVuZ3RoOiBudW1iZXIsIHJvdW5kVHJpcDogbnVtYmVyLCBpc0xvZ2dpbmdSZXNwb25zZTogYm9vbGVhbikge1xyXG4gICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PSBMb2dnZXJfTG9nTGV2ZWxzLlJlcXVlc3RJbmZvKSB7XHJcbiAgICAgIEh0dHBDbGllbnRFdmVudHMuQ29tcHV0ZUFuZExvZ1JlcXVlc3RJbmZvKGNvbnRlbnRMZW5ndGgsIHJvdW5kVHJpcCwgaXNMb2dnaW5nUmVzcG9uc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PldyaXRlIE1nKiBwcmVmaXhlZCBoZWFkZXJzIHRvIHN0cmluZyBpbiBmb3JtYXQgXCJIRUFERVIxOlZBTFVFMSBIRUFERVIyOlZBTFVFMiAuLi5cIjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJoZWFkZXJzXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJiRmlsdGVyXCI+aWYgdHJ1ZSwgbGlzdCBvbmx5IGhlYWRlcnMgcHJlZml4ZWQgd2l0aCBcIk1nXCI8L3BhcmFtPlxyXG4gIHByaXZhdGUgc3RhdGljIEhlYWRlcnNUb1N0cmluZyhoZWFkZXJzOiBIdHRwSGVhZGVycywgYkZpbHRlcjogYm9vbGVhbik6IFN0cmluZ0J1aWxkZXIge1xyXG4gICAgbGV0IGhlYWRlcnNTdHI6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG4gICAgbGV0IGhlYWRlcktleXM6IHN0cmluZ1tdID0gaGVhZGVycy5rZXlzKCk7XHJcblxyXG4gICAgZm9yIChsZXQga2V5IGluIGhlYWRlcktleXMpIHtcclxuICAgICAgLy8gZmlsdGVyIG9ubHkgaGVhZGVycyB0aGF0IGFyZSBwcmVmaXhlZCB3aXRoIE1nKiAoc2VudCBmcm9tIHRoZSBNaWRkbGV3YXJlIGFuZCBTZXJ2ZXIpOlxyXG4gICAgICBpZiAoIWJGaWx0ZXIgfHwgaGVhZGVyS2V5c1trZXldLnN0YXJ0c1dpdGgoXCJNZ1wiKSlcclxuICAgICAgICBoZWFkZXJzU3RyLkFwcGVuZChOU3RyaW5nLkZvcm1hdChcInswfTp7MX0gXCIsIGhlYWRlcktleXNba2V5XSwgaGVhZGVycy5nZXQoaGVhZGVyS2V5c1trZXldKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBoZWFkZXJzU3RyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlJldHVybiB0aGUgcHJvcGVydHkgd2hpY2ggZGVjaWRlIHdoZXRoZXIgdG8gc2V0IEhUVFAgaGVhZGVyIFwiRXhwZWN0OjEwMENvbnRpbnVlXCI8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPmJvb2w8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgR2V0SFRUUEV4cGVjdDEwMENvbnRpbnVlKCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgZXhlY3V0aW9uUHJvcGVydHk6IHN0cmluZyA9IEh0dHBDbGllbnRFdmVudHMuR2V0RXhlY3V0aW9uUHJvcGVydHkoSFRUUF9FWFBFQ1QxMDBDT05USU5VRSk7XHJcblxyXG4gICAgLy8gSW4gY2FzZSB0aGUgcHJvcGVydHkgaXMgbm90IGdpdmVuIGluIHRoZSBleGVjdXRpb24gcHJvcGVydGllcywgaXQgc2hvdWxkIGRlZmF1bHQgdG8gdHJ1ZVxyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoZXhlY3V0aW9uUHJvcGVydHkpKVxyXG4gICAgICByZXN1bHQgPSAoZXhlY3V0aW9uUHJvcGVydHkudG9VcHBlckNhc2UoKSA9PT0gXCJZXCIpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+UmV0dXJuIHRoZSBwcm9wZXJ0eSB3aGljaCBhbGxvd3MgdG8gdXNlIFRMUyB2MS4yIChpbXBsZW1lbnRlZCBhdCAuTkVUIHY0LjUpIGFzIGEgaGlnaGVzdCBUTFMgcHJvdG9jb2wgdmVyc2lvbi5cclxuICAvLy8gT3RoZXJ3aXNlIHVzZSBUTFMgdjEuMCBhcyBhIGhpZ2hlc3QgVExTIHByb3RvY29sIHZlcnNpb248L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPmJvb2w8L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgR2V0VXNlSGlnaGVzdFNlY3VyaXR5UHJvdG9jb2woKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsZXQgZXhlY3V0aW9uUHJvcGVydHk6IHN0cmluZyA9IEh0dHBDbGllbnRFdmVudHMuR2V0RXhlY3V0aW9uUHJvcGVydHkoVVNFX0hJR0hFU1RfU0VDVVJJVFlfUFJPVE9DT0wpO1xyXG5cclxuICAgIC8vIEluIGNhc2UgdGhlIHByb3BlcnR5IGlzIG5vdCBnaXZlbiBpbiB0aGUgZXhlY3V0aW9uIHByb3BlcnRpZXMsIGl0IHNob3VsZCBkZWZhdWx0IHRvIGZhbHNlIChhIGhpZ2hlc3QgVExTIHByb3RvY29sIHZlcnNpb24gaXMgdjEuMClcclxuICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KGV4ZWN1dGlvblByb3BlcnR5KSlcclxuICAgICAgcmVzdWx0ID0gKGV4ZWN1dGlvblByb3BlcnR5LnRvVXBwZXJDYXNlKCkgPT09IFwiWVwiKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8gQWJzdHJhY3QgbWV0aG9kc1xyXG4gIGFic3RyYWN0IHByZXBhcmVSZXF1ZXN0KCk7XHJcbiAgYWJzdHJhY3QgYWRkSGVhZGVycyh1cmxTdHJpbmc6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgY2xpZW50SUQ6IHN0cmluZyk6IEh0dHBIZWFkZXJzO1xyXG4gIGFic3RyYWN0IGFzeW5jIHNlbmRSZXF1ZXN0VG9TZXJ2ZXIoaHR0cE1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcsIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgY29udGVudEZyb21TZXJ2ZXI6IFJlZlBhcmFtPHN0cmluZz4pOiBQcm9taXNlPGFueT47XHJcbiAgYWJzdHJhY3QgbG9nUmVzcG9uc2UoaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiwgY2xpZW50SUQ6IHN0cmluZywgdXJsU3RyaW5nOiBzdHJpbmcsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxhbnk+LCB0aW1lQmVmb3JlUmVxdWVzdDogbnVtYmVyKTtcclxuICBhYnN0cmFjdCBoYW5kbGVIdHRwRXJyb3JFeGNlcHRpb24oZXg6IGFueSwgdXJsU3RyaW5nOiBzdHJpbmcpO1xyXG4gIGFic3RyYWN0IGFzeW5jIHNob3VsZFJldHJ5KGh0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TOiBudW1iZXIsIHVybFN0cmluZzogc3RyaW5nLCBjb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyOiBJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlciwgZXg6IGFueSwgc3RhcnRUaW1lUmVmOiBSZWZQYXJhbTxudW1iZXI+KTtcclxuICBhYnN0cmFjdCBsb2dBbmRUaHJvd0V4Y2VwdGlvbihleDogYW55KTtcclxuICBhYnN0cmFjdCBsb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0czogbnVtYmVyKTtcclxufVxyXG4iXX0=
|
|
@@ -9,7 +9,7 @@ export class HttpClientSync extends HttpClientBase {
|
|
|
9
9
|
this.httpRequest = null;
|
|
10
10
|
this.headers = new Headers();
|
|
11
11
|
}
|
|
12
|
-
prepareRequest(
|
|
12
|
+
prepareRequest() {
|
|
13
13
|
}
|
|
14
14
|
addHeaders(urlString, useCache, httpHeaders, clientID) {
|
|
15
15
|
if (!urlString.startsWith("/")) {
|
|
@@ -20,7 +20,7 @@ export class HttpClientSync extends HttpClientBase {
|
|
|
20
20
|
}
|
|
21
21
|
return httpHeaders;
|
|
22
22
|
}
|
|
23
|
-
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer
|
|
23
|
+
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
yield fetch(urlString, { method: 'POST', headers: this.headers, body: requestContent, keepalive: true });
|
|
26
26
|
return NString.Empty;
|
|
@@ -44,4 +44,4 @@ export class HttpClientSync extends HttpClientBase {
|
|
|
44
44
|
logExecutionAttempts(executionAttempts) {
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudFN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRTeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXBELE1BQU0sT0FBTyxjQUFlLFNBQVEsY0FBYztJQUtoRDtRQUVFLEtBQUssRUFBRSxDQUFDO1FBTEYsZ0JBQVcsR0FBbUIsSUFBSSxDQUFDO1FBQ25DLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBS3pDLENBQUM7SUFFRCxjQUFjO0lBRWQsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFpQixFQUFFLFFBQWlCLEVBQUUsV0FBd0IsRUFBRSxRQUFnQjtRQUV6RixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFDOUI7WUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxRQUFRLEVBQ2I7WUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUssbUJBQW1CLENBQUMsVUFBeUIsRUFBRSxTQUFpQixFQUFFLFdBQXdCLEVBQUUsY0FBc0IsRUFBRSxpQkFBbUM7O1lBRzNKLE1BQU0sS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUV4RyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdkIsQ0FBQztLQUFBO0lBRUQsV0FBVyxDQUFDLFlBQWtDLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLGlCQUFnQyxFQUFFLGlCQUF5QjtRQUU5SSxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztRQUU1RSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLGdCQUFnQixDQUFDLEtBQUs7WUFDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsZUFBZSxFQUN2QyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsRUFDbEMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsRUFDcEMsUUFBUSxFQUNSLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUM1RSxZQUFZLEVBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEVBQ3hELGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsRUFBTyxFQUFFLFNBQWlCO1FBR2pELE1BQU0sRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVLLFdBQVcsQ0FBQywwQkFBa0MsRUFBRSxTQUFpQixFQUFFLDRCQUEyRCxFQUFFLEVBQU8sRUFBRSxZQUE4Qjs7WUFHM0ssT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQUE7SUFFRCxvQkFBb0IsQ0FBQyxFQUFFO0lBR3ZCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxpQkFBeUI7SUFHOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtOU3RyaW5nLCBSZWZQYXJhbX0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudEJhc2UsIFJlcXVlc3RNZXRob2R9IGZyb20gXCIuL0h0dHBDbGllbnRCYXNlXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJfTG9nTGV2ZWxzLCBMb2dnZXJfTWVzc2FnZURpcmVjdGlvbiwgTWlzY30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50RXZlbnRzfSBmcm9tIFwiLi9IdHRwQ2xpZW50RXZlbnRzXCI7XHJcbmltcG9ydCB7SUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJ9IGZyb20gXCIuL0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyXCI7XHJcblxyXG4vLyBBIGNsYXNzIHVzaW5nIEh0dHAgU3luYyBMaWJyYXJ5XHJcbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50U3luYyBleHRlbmRzIEh0dHBDbGllbnRCYXNlXHJcbntcclxuICBwcml2YXRlIGh0dHBSZXF1ZXN0OiBYTUxIdHRwUmVxdWVzdCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBoZWFkZXJzOiBIZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKVxyXG4gIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlUmVxdWVzdCgpXHJcbiAge1xyXG4gIH1cclxuXHJcbiAgYWRkSGVhZGVycyh1cmxTdHJpbmc6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgY2xpZW50SUQ6IHN0cmluZyk6IEh0dHBIZWFkZXJzXHJcbiAge1xyXG4gICAgaWYgKCF1cmxTdHJpbmcuc3RhcnRzV2l0aChcIi9cIikpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5hcHBlbmQoXCJNZ3hwYVJJQWdsb2JhbFVuaXF1ZVNlc3Npb25JRFwiLCBjbGllbnRJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF1c2VDYWNoZSlcclxuICAgIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLmFwcGVuZChcIkNhY2hlLUNvbnRyb2xcIiwgXCJuby1jYWNoZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaHR0cEhlYWRlcnM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZW5kUmVxdWVzdFRvU2VydmVyKGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIHVybFN0cmluZzogc3RyaW5nLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+KTogUHJvbWlzZTxhbnk+XHJcbiAge1xyXG4gICAgLy8gU2VuZCB0aGUgZW5naW5lIHRlcm1pbmF0aW9uIHJlcXVlc3QgdG8gc2VydmVyLlxyXG4gICAgYXdhaXQgZmV0Y2godXJsU3RyaW5nLCB7IG1ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIGJvZHk6IHJlcXVlc3RDb250ZW50LCBrZWVwYWxpdmU6dHJ1ZSB9KTtcclxuXHJcbiAgICByZXR1cm4gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcblxyXG4gIGxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4sIGNsaWVudElEOiBzdHJpbmcsIHVybFN0cmluZzogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55PiwgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlcilcclxuICB7XHJcbiAgICBsZXQgcmVzcG9uc2VUaW1lOiBudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpIC0gdGltZUJlZm9yZVJlcXVlc3Q7XHJcblxyXG4gICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYylcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNUb0xvZyhMb2dnZXJfTWVzc2FnZURpcmVjdGlvbi5NZXNzYWdlRW50ZXJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRSdW50aW1lQ3R4SUQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkdldFNlc3Npb25Db3VudGVyKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5TaG91bGREaXNwbGF5R2VuZXJpY0Vycm9yKCkgPyBcIi1cIiA6IG5ldyBVUkwodXJsU3RyaW5nKS5ob3N0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmh0dHBSZXF1ZXN0LnN0YXR1cy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuaHR0cFJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVIdHRwRXJyb3JFeGNlcHRpb24oZXg6IGFueSwgdXJsU3RyaW5nOiBzdHJpbmcpXHJcbiAge1xyXG4gICAgLy8gTm8gZXhjZXB0aW9uIGhhbmRsaW5nIGZvciBsYXN0IHJlcXVlc3QgYW5kIGhlbmNlIGp1c3QgdGhyb3cgdGhlIGV4Y2VwdGlvblxyXG4gICAgdGhyb3cgZXg7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyLCB1cmxTdHJpbmc6IHN0cmluZywgY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcjogSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4OiBhbnksIHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPilcclxuICB7XHJcbiAgICAvLyBObyByZXRyeSBzdXBwb3J0ZWQgb24gbGFzdCByZXF1ZXN0XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2dBbmRUaHJvd0V4Y2VwdGlvbihleClcclxuICB7XHJcbiAgICAvLyBOLkEuXHJcbiAgfVxyXG5cclxuICBsb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0czogbnVtYmVyKVxyXG4gIHtcclxuICAgIC8vIE4uQS5cclxuICB9XHJcbn1cclxuIl19
|