@magic-xpa/engine 4.1200.0-dev4120.19 → 4.1200.0-dev4120.191
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/fesm2022/magic-xpa-engine.mjs +11347 -1307
- package/fesm2022/magic-xpa-engine.mjs.map +1 -1
- package/index.d.ts +4 -0
- package/package.json +5 -7
- package/src/ClientManager.d.ts +2 -0
- package/src/CommandsProcessorBase.d.ts +2 -1
- package/src/CommandsProcessorManager.d.ts +2 -1
- package/src/ConstInterface.d.ts +7 -0
- package/src/bridge/MagicBridge.d.ts +2 -0
- package/src/commands/ClientToServer/CachedFileQueryCommand.d.ts +9 -0
- package/src/commands/ClientToServer/CommandFactory.d.ts +4 -2
- package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +1 -0
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -0
- package/src/event/EventHandler.d.ts +5 -0
- package/src/event/EventsManager.d.ts +4 -0
- package/src/exp/ExpressionEvaluator.d.ts +5 -0
- package/src/http/HttpManager.d.ts +2 -1
- package/src/http/client/HttpClientAsync.d.ts +2 -2
- package/src/http/client/HttpClientBase.d.ts +3 -3
- package/src/http/client/HttpClientSync.d.ts +2 -2
- package/src/remote/RemoteCommandsProcessor.d.ts +9 -2
- package/src/remote/RemoteControlItemsRefreshCommand.d.ts +1 -0
- package/src/rt/Operation.d.ts +3 -1
- package/src/util/ParamParseResult.d.ts +3 -3
- package/esm2022/index.mjs +0 -188
- package/esm2022/magic-xpa-engine.mjs +0 -2
- package/esm2022/src/AccessHelper.mjs +0 -15
- package/esm2022/src/ClientManager.mjs +0 -420
- package/esm2022/src/CommandsProcessorBase.mjs +0 -56
- package/esm2022/src/CommandsProcessorManager.mjs +0 -26
- package/esm2022/src/CommandsTable.mjs +0 -162
- package/esm2022/src/ConstInterface.mjs +0 -517
- package/esm2022/src/CurrentClientVersion.mjs +0 -2
- package/esm2022/src/FlowMonitorInterface.mjs +0 -16
- package/esm2022/src/GUIManager.mjs +0 -62
- package/esm2022/src/GlobalCommandsManager.mjs +0 -34
- package/esm2022/src/GuiEventsProcessor.mjs +0 -156
- package/esm2022/src/ICommandsTable.mjs +0 -2
- package/esm2022/src/ServerConfig.mjs +0 -122
- package/esm2022/src/bridge/IGuiEvent.mjs +0 -20
- package/esm2022/src/bridge/MagicBridge.mjs +0 -41
- package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -12
- package/esm2022/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +0 -9
- package/esm2022/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +0 -9
- package/esm2022/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +0 -9
- package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -26
- package/esm2022/src/commands/ClientToServer/ClientOriginatedCommand.mjs +0 -15
- package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
- package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -29
- package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +0 -261
- package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -67
- package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -26
- package/esm2022/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +0 -24
- package/esm2022/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +0 -23
- package/esm2022/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +0 -8
- package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
- package/esm2022/src/commands/ClientToServer/DataviewCommand.mjs +0 -44
- package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +0 -40
- package/esm2022/src/commands/ClientToServer/EventCommand.mjs +0 -43
- package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +0 -70
- package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -25
- package/esm2022/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +0 -11
- package/esm2022/src/commands/ClientToServer/ICommandTaskTag.mjs +0 -2
- package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -24
- package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -26
- package/esm2022/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +0 -26
- package/esm2022/src/commands/ClientToServer/QueryCommand.mjs +0 -21
- package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +0 -30
- package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -30
- package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -27
- package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -43
- package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -19
- package/esm2022/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +0 -9
- package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -24
- package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -27
- package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +0 -34
- package/esm2022/src/commands/ClientToServer/UnloadCommand.mjs +0 -18
- package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
- package/esm2022/src/commands/DataViewCommandBase.mjs +0 -8
- package/esm2022/src/commands/IClientCommand.mjs +0 -2
- package/esm2022/src/commands/IClientTargetedCommand.mjs +0 -13
- package/esm2022/src/commands/IClientToServerCommandInfo.mjs +0 -2
- package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +0 -65
- package/esm2022/src/commands/ServerToClient/AddLocateCommand.mjs +0 -22
- package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
- package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
- package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
- package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -24
- package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
- package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
- package/esm2022/src/commands/ServerToClient/ResetLocateCommand.mjs +0 -15
- package/esm2022/src/commands/ServerToClient/ResetRangeCommand.mjs +0 -15
- package/esm2022/src/commands/ServerToClient/ResetSortCommand.mjs +0 -15
- package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +0 -37
- package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
- package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
- package/esm2022/src/communications/IConnectionStateManager.mjs +0 -2
- package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -15
- package/esm2022/src/data/DataSourceIdKey.mjs +0 -3
- package/esm2022/src/data/DataView.mjs +0 -1613
- package/esm2022/src/data/DataViewBase.mjs +0 -4
- package/esm2022/src/data/DataviewManager.mjs +0 -28
- package/esm2022/src/data/DataviewManagerBase.mjs +0 -15
- package/esm2022/src/data/DvCache.mjs +0 -67
- package/esm2022/src/data/Field.mjs +0 -646
- package/esm2022/src/data/FieldBase.mjs +0 -15
- package/esm2022/src/data/FieldsTable.mjs +0 -103
- package/esm2022/src/data/IRecordsTable.mjs +0 -2
- package/esm2022/src/data/Key.mjs +0 -88
- package/esm2022/src/data/Record.mjs +0 -880
- package/esm2022/src/data/RecordOutOfDataViewException.mjs +0 -16
- package/esm2022/src/data/RecordsTable.mjs +0 -267
- package/esm2022/src/data/TaskTransactionManager.mjs +0 -107
- package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
- package/esm2022/src/enums.mjs +0 -24
- package/esm2022/src/env/EnvVariablesTable.mjs +0 -340
- package/esm2022/src/env/Environment.mjs +0 -487
- package/esm2022/src/env/ILanguageData.mjs +0 -2
- package/esm2022/src/env/LanguageData.mjs +0 -227
- package/esm2022/src/env/MirrorString.mjs +0 -67
- package/esm2022/src/event/ActionManager.mjs +0 -91
- package/esm2022/src/event/Event.mjs +0 -1333
- package/esm2022/src/event/EventHandler.mjs +0 -766
- package/esm2022/src/event/EventHandlerPosition.mjs +0 -204
- package/esm2022/src/event/EventsManager.mjs +0 -2988
- package/esm2022/src/event/IEventsManager.mjs +0 -7
- package/esm2022/src/event/RunTimeEvent.mjs +0 -399
- package/esm2022/src/event/RunTimeEventBase.mjs +0 -4
- package/esm2022/src/event/UserEventsTable.mjs +0 -47
- package/esm2022/src/exp/ExpTable.mjs +0 -57
- package/esm2022/src/exp/Expression.mjs +0 -200
- package/esm2022/src/exp/ExpressionDict.mjs +0 -727
- package/esm2022/src/exp/ExpressionEvaluator.mjs +0 -4206
- package/esm2022/src/exp/ExpressionLocalJpn.mjs +0 -314
- package/esm2022/src/exp/GlobalParamsTable.mjs +0 -85
- package/esm2022/src/exp/YesNoExp.mjs +0 -36
- package/esm2022/src/gui/CreatedFormVector.mjs +0 -23
- package/esm2022/src/gui/FormsTable.mjs +0 -66
- package/esm2022/src/gui/MgControl.mjs +0 -363
- package/esm2022/src/gui/MgForm.mjs +0 -1224
- package/esm2022/src/http/HttpManager.mjs +0 -97
- package/esm2022/src/http/client/HttpClientAsync.mjs +0 -68
- package/esm2022/src/http/client/HttpClientBase.mjs +0 -132
- package/esm2022/src/http/client/HttpClientEvents.mjs +0 -39
- package/esm2022/src/http/client/HttpClientSync.mjs +0 -42
- package/esm2022/src/http/client/HttpUtility.mjs +0 -84
- package/esm2022/src/http/client/ICommunicationsFailureHandler.mjs +0 -2
- package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
- package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
- package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
- package/esm2022/src/remote/RemoteCommandsProcessor.mjs +0 -883
- package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
- package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +0 -24
- package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
- package/esm2022/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +0 -16
- package/esm2022/src/remote/RemoteDataviewManager.mjs +0 -17
- package/esm2022/src/remote/RemoteInitDataViewCommand.mjs +0 -11
- package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
- package/esm2022/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +0 -13
- package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
- package/esm2022/src/remote/ServerError.mjs +0 -40
- package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
- package/esm2022/src/rt/Argument.mjs +0 -265
- package/esm2022/src/rt/ArgumentsList.mjs +0 -103
- package/esm2022/src/rt/Boundary.mjs +0 -152
- package/esm2022/src/rt/CompMainPrgTable.mjs +0 -63
- package/esm2022/src/rt/DataviewHeaderBase.mjs +0 -98
- package/esm2022/src/rt/DataviewHeaderFactory.mjs +0 -7
- package/esm2022/src/rt/DataviewHeaders.mjs +0 -53
- package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
- package/esm2022/src/rt/ExecutionStack.mjs +0 -94
- package/esm2022/src/rt/ExecutionStackEntry.mjs +0 -17
- package/esm2022/src/rt/HandlersTable.mjs +0 -96
- package/esm2022/src/rt/IDataSourceViewDefinition.mjs +0 -2
- package/esm2022/src/rt/IDataviewHeader.mjs +0 -2
- package/esm2022/src/rt/IResultValue.mjs +0 -2
- package/esm2022/src/rt/LastFocusedManager.mjs +0 -65
- package/esm2022/src/rt/Operation.mjs +0 -735
- package/esm2022/src/rt/OperationTable.mjs +0 -67
- package/esm2022/src/rt/Recompute.mjs +0 -355
- package/esm2022/src/rt/RecomputeTable.mjs +0 -63
- package/esm2022/src/rt/RemoteDataviewHeader.mjs +0 -108
- package/esm2022/src/rt/ResultValue.mjs +0 -10
- package/esm2022/src/rt/TableCache.mjs +0 -177
- package/esm2022/src/rt/TableCacheManager.mjs +0 -67
- package/esm2022/src/rt/Transaction.mjs +0 -53
- package/esm2022/src/security/UserDetails.mjs +0 -71
- package/esm2022/src/tasks/IMGDataCollection.mjs +0 -2
- package/esm2022/src/tasks/MGData.mjs +0 -552
- package/esm2022/src/tasks/MGDataCollection.mjs +0 -252
- package/esm2022/src/tasks/RCTimer.mjs +0 -63
- package/esm2022/src/tasks/RemoteTaskService.mjs +0 -45
- package/esm2022/src/tasks/Task.mjs +0 -2499
- package/esm2022/src/tasks/TaskBase.mjs +0 -83
- package/esm2022/src/tasks/TaskServiceBase.mjs +0 -25
- package/esm2022/src/tasks/TasksTable.mjs +0 -80
- package/esm2022/src/tasks/sort/Sort.mjs +0 -5
- package/esm2022/src/tasks/sort/SortCollection.mjs +0 -67
- package/esm2022/src/util/ConstUtils.mjs +0 -14
- package/esm2022/src/util/FlowMonitorQueue.mjs +0 -451
- package/esm2022/src/util/HeapSort.mjs +0 -70
- package/esm2022/src/util/IMirrorXML.mjs +0 -2
- package/esm2022/src/util/IServerConfig.mjs +0 -2
- package/esm2022/src/util/MgBlockingQueue.mjs +0 -2
- package/esm2022/src/util/MgPriorityBlockingQueue.mjs +0 -74
- package/esm2022/src/util/MgPriorityQueue.mjs +0 -66
- package/esm2022/src/util/ParamParseResult.mjs +0 -8
- package/esm2022/src/util/PrmMap.mjs +0 -153
- package/esm2022/src/util/ReturnResult.mjs +0 -46
- package/esm2022/src/util/ReturnResultBase.mjs +0 -18
- package/esm2022/src/util/Scrambler.mjs +0 -89
- package/esm2022/src/util/UniqueIDUtils.mjs +0 -13
- package/esm2022/src/util/cookie.service.mjs +0 -92
@@ -1,65 +0,0 @@
|
|
1
|
-
import { Debug } from "@magic-xpa/mscorelib";
|
2
|
-
import { ControlTable } from "@magic-xpa/gui";
|
3
|
-
import { TasksTable } from "../tasks/TasksTable";
|
4
|
-
import { AccessHelper } from "../AccessHelper";
|
5
|
-
export class LastFocusedManager {
|
6
|
-
static Instance = new LastFocusedManager();
|
7
|
-
static _lastFocusedControls = new ControlTable();
|
8
|
-
static LastFocusMgdID = 0;
|
9
|
-
_lastFocusedTasks = null;
|
10
|
-
LastActionTime = 0;
|
11
|
-
Init(mgDataTable) {
|
12
|
-
this._lastFocusedTasks = new TasksTable();
|
13
|
-
}
|
14
|
-
getCurrTask() {
|
15
|
-
let rtEvnt = AccessHelper.eventsManager.getLastRtEvent();
|
16
|
-
return (rtEvnt !== null && rtEvnt.getTask() !== null && rtEvnt.getTask().GetContextTask() !== null)
|
17
|
-
? this.getLastFocusedTask(rtEvnt.getTask().GetContextTask().getMgdID())
|
18
|
-
: this.getLastFocusedTask();
|
19
|
-
}
|
20
|
-
getLastFocusedTask(mgdID) {
|
21
|
-
if (arguments.length === 0)
|
22
|
-
return this._lastFocusedTasks.getTask(AccessHelper.mgDataTable.currMgdID);
|
23
|
-
else
|
24
|
-
return this._lastFocusedTasks.getTask(mgdID);
|
25
|
-
}
|
26
|
-
setLastFocusedTask(iTask) {
|
27
|
-
let task = iTask;
|
28
|
-
let currMgdID = task.getMgdID();
|
29
|
-
this._lastFocusedTasks.setTaskAt(task, currMgdID);
|
30
|
-
}
|
31
|
-
clean(index) {
|
32
|
-
LastFocusedManager.deleteLastFocusedControlAt(index);
|
33
|
-
if (this._lastFocusedTasks !== null) {
|
34
|
-
this._lastFocusedTasks.setTaskAt(null, index);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
static getLastFocusedControl(mgdID) {
|
38
|
-
if (arguments.length === 1)
|
39
|
-
return LastFocusedManager.getLastFocusedControl_1(mgdID);
|
40
|
-
else
|
41
|
-
return LastFocusedManager.getLastFocusedControl_0();
|
42
|
-
}
|
43
|
-
static getLastFocusedControl_0() {
|
44
|
-
return LastFocusedManager._lastFocusedControls.getCtrl(AccessHelper.mgDataTable.currMgdID);
|
45
|
-
}
|
46
|
-
static getLastFocusedControl_1(mgdID) {
|
47
|
-
return LastFocusedManager._lastFocusedControls.getCtrl(mgdID);
|
48
|
-
}
|
49
|
-
static deleteLastFocusedControlAt(index) {
|
50
|
-
if (LastFocusedManager._lastFocusedControls !== null && LastFocusedManager._lastFocusedControls.getCtrl(index) != null) {
|
51
|
-
LastFocusedManager._lastFocusedControls.deleteControlAt(index);
|
52
|
-
}
|
53
|
-
}
|
54
|
-
static setLastFocusedControlAt(ctrl, currMgdID) {
|
55
|
-
LastFocusedManager._lastFocusedControls.setControlAt(ctrl, currMgdID);
|
56
|
-
}
|
57
|
-
static setLastFocusedControl(task, mgControl) {
|
58
|
-
let currMgdID = task.getMgdID();
|
59
|
-
Debug.Assert(mgControl === null || task === mgControl.getForm().getTask());
|
60
|
-
LastFocusedManager.LastFocusMgdID = currMgdID;
|
61
|
-
LastFocusedManager.setLastFocusedControlAt(mgControl, currMgdID);
|
62
|
-
LastFocusedManager.Instance.setLastFocusedTask(task);
|
63
|
-
}
|
64
|
-
}
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGFzdEZvY3VzZWRNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9ydC9MYXN0Rm9jdXNlZE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNDLE9BQU8sRUFBUyxZQUFZLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxRQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUN2RCxNQUFNLENBQUMsb0JBQW9CLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdkUsTUFBTSxDQUFDLGNBQWMsR0FBVyxDQUFDLENBQUM7SUFFMUIsaUJBQWlCLEdBQWUsSUFBSSxDQUFDO0lBQzdDLGNBQWMsR0FBVyxDQUFDLENBQUM7SUFLM0IsSUFBSSxDQUFDLFdBQTZCO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxNQUFNLEdBQWlCLFlBQVksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLEtBQUssSUFBSSxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQVMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBS0Qsa0JBQWtCLENBQUMsS0FBYztRQUMvQixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixPQUFhLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzs7WUFFaEYsT0FBYSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFLRCxrQkFBa0IsQ0FBQyxLQUFZO1FBRTdCLElBQUksSUFBSSxHQUFlLEtBQUssQ0FBQztRQUM3QixJQUFJLFNBQVMsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFcEQsQ0FBQztJQUtELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRTtZQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFJRCxNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBYztRQUN6QyxJQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QixPQUFPLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUV6RCxPQUFPLGtCQUFrQixDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFFeEQsQ0FBQztJQU1PLE1BQU0sQ0FBQyx1QkFBdUI7UUFDcEMsT0FBa0Isa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQU9PLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFhO1FBQ2xELE9BQWtCLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBT0QsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQWE7UUFDN0MsSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLElBQUksa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN0SCxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBT0QsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQW1CLEVBQUUsU0FBaUI7UUFDbkUsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBU0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQWMsRUFBRSxTQUF3QjtRQUNqRSxJQUFJLFNBQVMsR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUUzRSxrQkFBa0IsQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQzlDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQgeyBJVGFzaywgQ29udHJvbFRhYmxlLCBNZ0NvbnRyb2xCYXNlIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7IE1nQ29udHJvbCB9IGZyb20gXCIuLi9ndWkvTWdDb250cm9sXCI7XHJcbmltcG9ydCB7IFRhc2tCYXNlIH0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5pbXBvcnQgeyBUYXNrc1RhYmxlIH0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tzVGFibGVcIjtcclxuaW1wb3J0IHsgUnVuVGltZUV2ZW50IH0gZnJvbSBcIi4uL2V2ZW50L1J1blRpbWVFdmVudFwiO1xyXG5pbXBvcnQgeyBNR0RhdGFDb2xsZWN0aW9uIH0gZnJvbSBcIi4uL3Rhc2tzL01HRGF0YUNvbGxlY3Rpb25cIjtcclxuaW1wb3J0IHsgQWNjZXNzSGVscGVyIH0gZnJvbSBcIi4uL0FjY2Vzc0hlbHBlclwiO1xyXG5cclxuLy8gc3BsaXQgZnJvbSBHdWlNYW5hZ2VyIHRvIGZpeCBjaXJjdWxhciByZWZlcmVuY2VzXHJcbmV4cG9ydCBjbGFzcyBMYXN0Rm9jdXNlZE1hbmFnZXIge1xyXG4gIHN0YXRpYyBJbnN0YW5jZTogTGFzdEZvY3VzZWRNYW5hZ2VyID0gbmV3IExhc3RGb2N1c2VkTWFuYWdlcigpO1xyXG4gIHByaXZhdGUgc3RhdGljIF9sYXN0Rm9jdXNlZENvbnRyb2xzOiBDb250cm9sVGFibGUgPSBuZXcgQ29udHJvbFRhYmxlKCk7IC8vIGxhc3QgZm9jdXNlZCBjb250cm9scyBQRVIgV0lORE9XXHJcbiAgc3RhdGljIExhc3RGb2N1c01nZElEOiBudW1iZXIgPSAwOyAvLyB0aGUgbGFzdCBNR0RBVEEgZm9yIHdoaWNoIHNldEZvY3VzIHdhcyBwZXJmb3JtZWRcclxuXHJcbiAgcHJpdmF0ZSBfbGFzdEZvY3VzZWRUYXNrczogVGFza3NUYWJsZSA9IG51bGw7IC8vIGFycmF5IG9mIHRhc2tzIGluIGZvY3VzIHBlciB3aW5kb3dcclxuICBMYXN0QWN0aW9uVGltZTogbnVtYmVyID0gMDsgLy8gdGltZSBvZiBsYXN0IHVzZXIgYWN0aW9uIGZvciBJRExFIGZ1bmN0aW9uXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gSW5pdGlhbGl6ZSB0aGUgbGFzdC1mb2N1c2VkLXRhc2sgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIEluaXQobWdEYXRhVGFibGU6IE1HRGF0YUNvbGxlY3Rpb24pIHtcclxuICAgIHRoaXMuX2xhc3RGb2N1c2VkVGFza3MgPSBuZXcgVGFza3NUYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBnZXQgQ3VycmVudCBwcm9jZXNzaW5nIHRhc2s8L3N1bW1hcnk+XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDdXJyVGFzaygpOiBUYXNrIHtcclxuICAgIGxldCBydEV2bnQ6IFJ1blRpbWVFdmVudCA9IEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLmdldExhc3RSdEV2ZW50KCk7XHJcbiAgICByZXR1cm4gKHJ0RXZudCAhPT0gbnVsbCAmJiBydEV2bnQuZ2V0VGFzaygpICE9PSBudWxsICYmIHJ0RXZudC5nZXRUYXNrKCkuR2V0Q29udGV4dFRhc2soKSAhPT0gbnVsbClcclxuICAgICAgPyB0aGlzLmdldExhc3RGb2N1c2VkVGFzaygoPFRhc2s+IHJ0RXZudC5nZXRUYXNrKCkuR2V0Q29udGV4dFRhc2soKSkuZ2V0TWdkSUQoKSlcclxuICAgICAgOiB0aGlzLmdldExhc3RGb2N1c2VkVGFzaygpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gZ2V0IGxhc3QgdGFzayB0aGF0IGlzIGluIGZvY3VzPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0TGFzdEZvY3VzZWRUYXNrKG1nZElEPzogbnVtYmVyKTogVGFzayB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMClcclxuICAgICAgcmV0dXJuIDxUYXNrPnRoaXMuX2xhc3RGb2N1c2VkVGFza3MuZ2V0VGFzayhBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuY3Vyck1nZElEKTtcclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuIDxUYXNrPnRoaXMuX2xhc3RGb2N1c2VkVGFza3MuZ2V0VGFzayhtZ2RJRCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBzZXQgbGFzdCBmb2N1c2VkIGNvbnRyb2wgZm9yIGN1cnJlbnQgd2luZG93PC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImxhc3RcIj5mb2N1c2VkIGNvbnRyb2wgZm9yIGN1cnJlbnQgd2luZG93PC9wYXJhbT5cclxuICBzZXRMYXN0Rm9jdXNlZFRhc2soaVRhc2s6IElUYXNrKTogdm9pZCB7XHJcblxyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSA8VGFzaz5pVGFzaztcclxuICAgIGxldCBjdXJyTWdkSUQ6IG51bWJlciA9IHRhc2suZ2V0TWdkSUQoKTtcclxuICAgIHRoaXMuX2xhc3RGb2N1c2VkVGFza3Muc2V0VGFza0F0KHRhc2ssIGN1cnJNZ2RJRCk7XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gbWVtb3J5IGxlYWsgZml4OiBjbGVhbiBkYW5nYWxpbmcgcmVmcmVuY2VzIHRvIGNsb3NlZCBtZ0RhdGEnczwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpbmRleFwiPnRoZSBtZ0RhdGEgaW5kZXgvLy8gPC9wYXJhbT5cclxuICBjbGVhbihpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBMYXN0Rm9jdXNlZE1hbmFnZXIuZGVsZXRlTGFzdEZvY3VzZWRDb250cm9sQXQoaW5kZXgpO1xyXG5cclxuICAgIGlmICh0aGlzLl9sYXN0Rm9jdXNlZFRhc2tzICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2xhc3RGb2N1c2VkVGFza3Muc2V0VGFza0F0KG51bGwsIGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFRoZSBtYWluIG1lc3NhZ2UgbG9vcCB0aGF0IHJlYWRzIG1lc3NhZ2VzIGZyb20gdGhlIHF1ZXVlIGFuZCBkaXNwYXRjaGVzIHRoZW0uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgZ2V0TGFzdEZvY3VzZWRDb250cm9sKG1nZElEPzogbnVtYmVyKTogTWdDb250cm9sIHtcclxuICAgIGlmKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpXHJcbiAgICAgIHJldHVybiBMYXN0Rm9jdXNlZE1hbmFnZXIuZ2V0TGFzdEZvY3VzZWRDb250cm9sXzEobWdkSUQpO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gTGFzdEZvY3VzZWRNYW5hZ2VyLmdldExhc3RGb2N1c2VkQ29udHJvbF8wKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB0aGUgbGFzdCBjb250cm9sIHRoYXQgaGFkIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVudCBtZ2RhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gcmVmZXJlbmNlIHRvIHRoZSBsYXN0IGZvY3VzZWQgY29udHJvbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRMYXN0Rm9jdXNlZENvbnRyb2xfMCgpOiBNZ0NvbnRyb2wge1xyXG4gICAgcmV0dXJuIDxNZ0NvbnRyb2w+TGFzdEZvY3VzZWRNYW5hZ2VyLl9sYXN0Rm9jdXNlZENvbnRyb2xzLmdldEN0cmwoQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmN1cnJNZ2RJRCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHRoZSBsYXN0IGNvbnRyb2wgdGhhdCBoYWQgdGhlIGZvY3VzIGluIHRoZSBjdXJyZW50IG1nZGF0YVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ2RJRFwiPnRoZSBtZ2RhdGEgSUQgZm9yIHdoaWNoIHRvIHJldHVybiB0aGUgbGFzdCBmb2N1c2VkIGNvbnRyb2w8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gcmVmZXJlbmNlIHRvIHRoZSBsYXN0IGZvY3VzZWQgY29udHJvbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBnZXRMYXN0Rm9jdXNlZENvbnRyb2xfMShtZ2RJRDogbnVtYmVyKTogTWdDb250cm9sIHtcclxuICAgIHJldHVybiA8TWdDb250cm9sPkxhc3RGb2N1c2VkTWFuYWdlci5fbGFzdEZvY3VzZWRDb250cm9scy5nZXRDdHJsKG1nZElEKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgY29udHJvbCBhdCAnaW5kZXgnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpbmRleFwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIGRlbGV0ZUxhc3RGb2N1c2VkQ29udHJvbEF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChMYXN0Rm9jdXNlZE1hbmFnZXIuX2xhc3RGb2N1c2VkQ29udHJvbHMgIT09IG51bGwgJiYgTGFzdEZvY3VzZWRNYW5hZ2VyLl9sYXN0Rm9jdXNlZENvbnRyb2xzLmdldEN0cmwoaW5kZXgpICE9IG51bGwpIHtcclxuICAgICAgTGFzdEZvY3VzZWRNYW5hZ2VyLl9sYXN0Rm9jdXNlZENvbnRyb2xzLmRlbGV0ZUNvbnRyb2xBdChpbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNldCB0aGUgY29udHJvbCBhdCAnaW5kZXgnXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjdHJsXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjdXJyTWdkSURcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBzZXRMYXN0Rm9jdXNlZENvbnRyb2xBdChjdHJsOiBNZ0NvbnRyb2xCYXNlLCBjdXJyTWdkSUQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgTGFzdEZvY3VzZWRNYW5hZ2VyLl9sYXN0Rm9jdXNlZENvbnRyb2xzLnNldENvbnRyb2xBdChjdHJsLCBjdXJyTWdkSUQpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNldCB0aGUgbGFzdCBmb2N1c2VkIGNvbnRyb2wgYW5kIHRoZSB0YXNrIGZvciBjdXJyZW50IHdpbmRvdy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIk1nQ29udHJvbEJhc2VcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBzZXRMYXN0Rm9jdXNlZENvbnRyb2wodGFzazogVGFza0Jhc2UsIG1nQ29udHJvbDogTWdDb250cm9sQmFzZSk6IHZvaWQge1xyXG4gICAgICBsZXQgY3Vyck1nZElEOiBudW1iZXIgPSB0YXNrLmdldE1nZElEKCk7XHJcblxyXG4gICAgRGVidWcuQXNzZXJ0KG1nQ29udHJvbCA9PT0gbnVsbCB8fCB0YXNrID09PSBtZ0NvbnRyb2wuZ2V0Rm9ybSgpLmdldFRhc2soKSk7XHJcblxyXG4gICAgTGFzdEZvY3VzZWRNYW5hZ2VyLkxhc3RGb2N1c01nZElEID0gY3Vyck1nZElEO1xyXG4gICAgTGFzdEZvY3VzZWRNYW5hZ2VyLnNldExhc3RGb2N1c2VkQ29udHJvbEF0KG1nQ29udHJvbCwgY3Vyck1nZElEKTtcclxuICAgIExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5zZXRMYXN0Rm9jdXNlZFRhc2sodGFzayk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|