@magic-xpa/engine 4.800.0 → 4.801.0-dev000.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +190 -0
- package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
- package/esm2020/src/AccessHelper.mjs +3 -0
- package/esm2020/src/ClientManager.mjs +403 -0
- package/esm2020/src/CommandsProcessorBase.mjs +58 -0
- package/esm2020/src/CommandsProcessorManager.mjs +26 -0
- package/esm2020/src/CommandsTable.mjs +163 -0
- package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
- package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
- package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
- package/esm2020/src/GUIManager.mjs +63 -0
- package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
- package/esm2020/src/GuiEventsProcessor.mjs +171 -0
- package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
- package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
- package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
- package/esm2020/src/bridge/MagicBridge.mjs +41 -0
- package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs +15 -0
- package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
- package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -0
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
- package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +20 -0
- package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +2 -2
- package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +36 -0
- package/esm2020/src/commands/ClientToServer/EventCommand.mjs +40 -0
- package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
- package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
- package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
- package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
- package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
- package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
- package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +39 -0
- package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
- package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +28 -0
- package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
- package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
- package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
- package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
- package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
- package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
- package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
- package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
- package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
- package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
- package/esm2020/src/data/DataView.mjs +1634 -0
- package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
- package/esm2020/src/data/DataviewManager.mjs +28 -0
- package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
- package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
- package/esm2020/src/data/Field.mjs +645 -0
- package/esm2020/src/data/FieldBase.mjs +18 -0
- package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
- package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
- package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
- package/esm2020/src/data/Record.mjs +846 -0
- package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
- package/esm2020/src/data/RecordsTable.mjs +267 -0
- package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
- package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
- package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
- package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2020/src/env/Environment.mjs +554 -0
- package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
- package/esm2020/src/env/LanguageData.mjs +222 -0
- package/esm2020/src/env/MirrorString.mjs +66 -0
- package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
- package/esm2020/src/event/Event.mjs +1436 -0
- package/esm2020/src/event/EventHandler.mjs +773 -0
- package/esm2020/src/event/EventHandlerPosition.mjs +201 -0
- package/esm2020/src/event/EventsManager.mjs +2983 -0
- package/esm2020/src/event/IEventsManager.mjs +7 -0
- package/esm2020/src/event/RunTimeEvent.mjs +406 -0
- package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
- package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
- package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
- package/esm2020/src/exp/Expression.mjs +200 -0
- package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
- package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
- package/esm2020/src/exp/ExpressionLocalJpn.mjs +314 -0
- package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
- package/esm2020/src/exp/YesNoExp.mjs +41 -0
- package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
- package/esm2020/src/gui/FormsTable.mjs +66 -0
- package/esm2020/src/gui/MgControl.mjs +357 -0
- package/esm2020/src/gui/MgForm.mjs +1195 -0
- package/esm2020/src/http/HttpManager.mjs +97 -0
- package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
- package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
- package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
- package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
- package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
- package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
- package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
- package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
- package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
- package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/esm2020/src/remote/ServerError.mjs +44 -0
- package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
- package/esm2020/src/rt/Argument.mjs +274 -0
- package/esm2020/src/rt/ArgumentsList.mjs +103 -0
- package/esm2020/src/rt/Boundary.mjs +158 -0
- package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
- package/esm2020/src/rt/DataviewHeaderFactory.mjs +7 -0
- package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +39 -0
- package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
- package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
- package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
- package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
- package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
- package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
- package/esm2020/src/rt/Operation.mjs +745 -0
- package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
- package/esm2020/src/rt/Recompute.mjs +355 -0
- package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
- package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
- package/esm2020/src/rt/TableCache.mjs +177 -0
- package/esm2020/src/rt/TableCacheManager.mjs +67 -0
- package/esm2020/src/rt/Transaction.mjs +54 -0
- package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
- package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
- package/esm2020/src/tasks/MGData.mjs +552 -0
- package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
- package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
- package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
- package/esm2020/src/tasks/RemoteTaskService.mjs +45 -0
- package/esm2020/src/tasks/Task.mjs +2501 -0
- package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
- package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2020/src/tasks/TasksTable.mjs +80 -0
- package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
- package/esm2020/src/tasks/sort/SortCollection.mjs +72 -0
- package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
- package/{esm2015/src/util/FlowMonitorQueue.js → esm2020/src/util/FlowMonitorQueue.mjs} +15 -18
- package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
- package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
- package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
- package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
- package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
- package/esm2020/src/util/ParamParseResult.mjs +8 -0
- package/esm2020/src/util/PrmMap.mjs +151 -0
- package/esm2020/src/util/Process.mjs +7 -0
- package/esm2020/src/util/ReturnResult.mjs +46 -0
- package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
- package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
- package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
- package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
- package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +267 -254
- package/fesm2015/magic-xpa-engine.mjs.map +1 -0
- package/fesm2020/magic-xpa-engine.mjs +30705 -0
- package/fesm2020/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/package.json +27 -13
- package/src/AccessHelper.d.ts +1 -1
- package/src/CommandsProcessorBase.d.ts +3 -3
- 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/commands/DataViewCommandBase.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +1 -1
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
- package/src/data/FieldBase.d.ts +3 -3
- package/src/data/Record.d.ts +2 -9
- package/src/data/RecordsTable.d.ts +1 -2
- package/src/data/XMLBasedDcValuesBuilder.d.ts +1 -1
- package/src/env/EnvVariablesTable.d.ts +2 -15
- package/src/env/Environment.d.ts +0 -3
- package/src/env/MirrorString.d.ts +15 -0
- 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/exp/GlobalParamsTable.d.ts +2 -1
- package/src/gui/MgControl.d.ts +0 -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 +3 -3
- package/src/http/client/HttpClientSync.d.ts +2 -2
- package/src/remote/RemoteCommandsProcessor.d.ts +1 -1
- package/src/rt/DataviewHeaderBase.d.ts +2 -2
- package/src/rt/DataviewHeaderFactory.d.ts +1 -1
- package/src/rt/Operation.d.ts +3 -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/TaskBase.d.ts +7 -7
- 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/IMirrorXML.d.ts +1 -1
- package/src/util/ParamParseResult.d.ts +6 -0
- package/src/util/PrmMap.d.ts +0 -6
- package/src/util/Process.d.ts +1 -1
- package/bundles/magic-xpa-engine.umd.js +0 -38066
- package/bundles/magic-xpa-engine.umd.js.map +0 -1
- package/bundles/magic-xpa-engine.umd.min.js +0 -16
- package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -188
- package/esm2015/src/AccessHelper.js +0 -3
- package/esm2015/src/ClientManager.js +0 -412
- package/esm2015/src/CommandsProcessorBase.js +0 -54
- package/esm2015/src/CommandsProcessorManager.js +0 -31
- package/esm2015/src/CommandsTable.js +0 -166
- package/esm2015/src/GUIManager.js +0 -72
- package/esm2015/src/GuiEventsProcessor.js +0 -171
- package/esm2015/src/bridge/MagicBridge.js +0 -44
- package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js +0 -15
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js +0 -60
- package/esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js +0 -26
- package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
- package/esm2015/src/commands/ClientToServer/ComputeEventCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js +0 -20
- package/esm2015/src/commands/ClientToServer/EvaluateCommand.js +0 -36
- package/esm2015/src/commands/ClientToServer/EventCommand.js +0 -40
- package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +0 -67
- package/esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js +0 -22
- package/esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/QueryCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/RecomputeCommand.js +0 -27
- package/esm2015/src/commands/ClientToServer/RefreshEventCommand.js +0 -27
- package/esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/RollbackEventCommand.js +0 -39
- package/esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/TransactionCommand.js +0 -28
- package/esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js +0 -18
- package/esm2015/src/commands/DataViewCommandBase.js +0 -6
- package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
- package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
- package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
- package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
- package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
- package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
- package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
- package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
- package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
- package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
- package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
- package/esm2015/src/data/DataView.js +0 -1693
- package/esm2015/src/data/DataviewManager.js +0 -31
- package/esm2015/src/data/DataviewManagerBase.js +0 -18
- package/esm2015/src/data/Field.js +0 -672
- package/esm2015/src/data/FieldBase.js +0 -9
- package/esm2015/src/data/Record.js +0 -914
- package/esm2015/src/data/RecordsTable.js +0 -267
- package/esm2015/src/data/TaskTransactionManager.js +0 -110
- package/esm2015/src/data/XMLBasedDcValuesBuilder.js +0 -74
- package/esm2015/src/env/EnvVariablesTable.js +0 -408
- package/esm2015/src/env/Environment.js +0 -563
- package/esm2015/src/env/LanguageData.js +0 -230
- package/esm2015/src/event/Event.js +0 -1449
- package/esm2015/src/event/EventHandler.js +0 -787
- package/esm2015/src/event/EventHandlerPosition.js +0 -201
- package/esm2015/src/event/EventsManager.js +0 -3107
- package/esm2015/src/event/IEventsManager.js +0 -7
- package/esm2015/src/event/RunTimeEvent.js +0 -406
- package/esm2015/src/exp/Expression.js +0 -209
- package/esm2015/src/exp/ExpressionEvaluator.js +0 -4441
- package/esm2015/src/exp/ExpressionLocalJpn.js +0 -314
- package/esm2015/src/exp/GlobalParamsTable.js +0 -84
- package/esm2015/src/exp/YesNoExp.js +0 -44
- package/esm2015/src/gui/FormsTable.js +0 -73
- package/esm2015/src/gui/MgControl.js +0 -438
- package/esm2015/src/gui/MgForm.js +0 -1292
- package/esm2015/src/http/HttpManager.js +0 -100
- package/esm2015/src/http/client/HttpClientAsync.js +0 -72
- package/esm2015/src/http/client/HttpClientBase.js +0 -148
- package/esm2015/src/http/client/HttpClientSync.js +0 -47
- package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -903
- package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
- package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
- package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
- package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
- package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
- package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
- package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
- package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
- package/esm2015/src/remote/ServerError.js +0 -45
- package/esm2015/src/rt/Argument.js +0 -281
- package/esm2015/src/rt/ArgumentsList.js +0 -108
- package/esm2015/src/rt/Boundary.js +0 -161
- package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
- package/esm2015/src/rt/DataviewHeaderFactory.js +0 -7
- package/esm2015/src/rt/DataviewHeadersSaxHandler.js +0 -40
- package/esm2015/src/rt/Operation.js +0 -769
- package/esm2015/src/rt/Recompute.js +0 -372
- package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
- package/esm2015/src/rt/TableCache.js +0 -182
- package/esm2015/src/rt/TableCacheManager.js +0 -70
- package/esm2015/src/rt/Transaction.js +0 -54
- package/esm2015/src/tasks/MGData.js +0 -561
- package/esm2015/src/tasks/MGDataCollection.js +0 -270
- package/esm2015/src/tasks/RemoteTaskService.js +0 -45
- package/esm2015/src/tasks/Task.js +0 -2593
- package/esm2015/src/tasks/TaskServiceBase.js +0 -30
- package/esm2015/src/tasks/TasksTable.js +0 -87
- package/esm2015/src/tasks/sort/SortCollection.js +0 -72
- package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
- package/esm2015/src/util/PrmMap.js +0 -157
- package/esm2015/src/util/Process.js +0 -7
- package/esm2015/src/util/ReturnResult.js +0 -46
- package/fesm2015/magic-xpa-engine.js.map +0 -1
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import { StringBuilder } from "@magic-xpa/mscorelib";
|
|
2
|
-
import { StrUtil, StorageAttribute, UtilDateJpn } from "@magic-xpa/utils";
|
|
3
|
-
import { Manager } from "@magic-xpa/gui";
|
|
4
|
-
export class ExpressionLocalJpn {
|
|
5
|
-
constructor(expressionEvaluator) {
|
|
6
|
-
this._expressionEvaluator = null;
|
|
7
|
-
this._expressionEvaluator = expressionEvaluator;
|
|
8
|
-
}
|
|
9
|
-
eval_op_han(strVal) {
|
|
10
|
-
let strbufZenkaku = new StringBuilder(StrUtil.rtrim(strVal));
|
|
11
|
-
let strbufHankaku = new StringBuilder(0);
|
|
12
|
-
let strRet = null;
|
|
13
|
-
for (let i = 0; i < strbufZenkaku.Length; i = i + 1) {
|
|
14
|
-
let cLetter = strbufZenkaku.get_Item(i);
|
|
15
|
-
if (0xff01 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff5e && cLetter.charCodeAt(0) !== 0xff3c && cLetter.charCodeAt(0) !== 0xff40) {
|
|
16
|
-
strbufHankaku.Append(String.fromCharCode(cLetter.charCodeAt(0) - 0xfee0));
|
|
17
|
-
}
|
|
18
|
-
else if (0x309b <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x30f6) {
|
|
19
|
-
strbufHankaku.Append(ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][0]);
|
|
20
|
-
if (ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][1].charCodeAt(0) > 0x0000) {
|
|
21
|
-
strbufHankaku.Append(ExpressionLocalJpn.tableZen2Han[cLetter.charCodeAt(0) - 0x309b][1]);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
let j;
|
|
26
|
-
for (j = 0; j < ExpressionLocalJpn.tableExceptZen2Han.length; j++) {
|
|
27
|
-
if (cLetter === ExpressionLocalJpn.tableExceptZen2Han[j][0]) {
|
|
28
|
-
strbufHankaku.Append(ExpressionLocalJpn.tableExceptZen2Han[j][1]);
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (j === ExpressionLocalJpn.tableExceptZen2Han.length)
|
|
33
|
-
strbufHankaku.Append(cLetter);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
strRet = strbufHankaku.ToString();
|
|
37
|
-
strbufZenkaku = null;
|
|
38
|
-
strbufHankaku = null;
|
|
39
|
-
return strRet;
|
|
40
|
-
}
|
|
41
|
-
eval_op_zens(strVal, mode) {
|
|
42
|
-
let strbufHankaku = new StringBuilder(StrUtil.rtrim(strVal));
|
|
43
|
-
let strbufZenkaku = new StringBuilder(0);
|
|
44
|
-
let strRet = null;
|
|
45
|
-
for (let i = 0; i < strbufHankaku.Length; i = i + 1) {
|
|
46
|
-
let cLetter = strbufHankaku.get_Item(i);
|
|
47
|
-
if (0x0020 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x007e) {
|
|
48
|
-
switch (cLetter) {
|
|
49
|
-
case String.fromCharCode(0x0020):
|
|
50
|
-
if (mode === 1) {
|
|
51
|
-
strbufZenkaku.Append(String.fromCharCode(0x3000));
|
|
52
|
-
}
|
|
53
|
-
else if (mode === 2) {
|
|
54
|
-
strbufZenkaku.Append(String.fromCharCode(0x0020));
|
|
55
|
-
strbufZenkaku.Append(String.fromCharCode(0x0020));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
strbufZenkaku.Append(String.fromCharCode(0x0020));
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
case String.fromCharCode(0x0022):
|
|
62
|
-
strbufZenkaku.Append(String.fromCharCode(0x201d));
|
|
63
|
-
break;
|
|
64
|
-
case String.fromCharCode(0x0027):
|
|
65
|
-
strbufZenkaku.Append(String.fromCharCode(0x2019));
|
|
66
|
-
break;
|
|
67
|
-
case String.fromCharCode(0x005c):
|
|
68
|
-
strbufZenkaku.Append(String.fromCharCode(0xffe5));
|
|
69
|
-
break;
|
|
70
|
-
case String.fromCharCode(0x0060):
|
|
71
|
-
strbufZenkaku.Append(String.fromCharCode(0x2018));
|
|
72
|
-
break;
|
|
73
|
-
default:
|
|
74
|
-
strbufZenkaku.Append(String.fromCharCode(cLetter.charCodeAt(0) + 0xfee0));
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else if (0xff61 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff9f) {
|
|
79
|
-
let cCombine = String.fromCharCode(0x0000);
|
|
80
|
-
if ((i + 1) < strbufHankaku.Length) {
|
|
81
|
-
cCombine = strbufHankaku.get_Item(i + 1);
|
|
82
|
-
if (cCombine.charCodeAt(0) !== 0xff9e && cCombine.charCodeAt(0) !== 0xff9f)
|
|
83
|
-
cCombine = String.fromCharCode(0x0000);
|
|
84
|
-
}
|
|
85
|
-
if (cCombine.charCodeAt(0) === 0xff9e) {
|
|
86
|
-
if (0xff76 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff84 || 0xff8a <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff8e)
|
|
87
|
-
strbufZenkaku.Append((ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61] + 0x001));
|
|
88
|
-
else if (cLetter.charCodeAt(0) === 0xff73)
|
|
89
|
-
strbufZenkaku.Append(String.fromCharCode(0x30f4));
|
|
90
|
-
else
|
|
91
|
-
cCombine = String.fromCharCode(0x0000);
|
|
92
|
-
}
|
|
93
|
-
else if (cCombine.charCodeAt(0) === 0xff9f) {
|
|
94
|
-
if (0xff8a <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0xff8e)
|
|
95
|
-
strbufZenkaku.Append((ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61] + 0x002));
|
|
96
|
-
else
|
|
97
|
-
cCombine = String.fromCharCode(0x0000);
|
|
98
|
-
}
|
|
99
|
-
if (cCombine.charCodeAt(0) !== 0x0000)
|
|
100
|
-
i++;
|
|
101
|
-
else
|
|
102
|
-
strbufZenkaku.Append(ExpressionLocalJpn.tableHan2Zen[cLetter.charCodeAt(0) - 0xff61]);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
strbufZenkaku.Append(cLetter);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
strRet = strbufZenkaku.ToString();
|
|
109
|
-
strbufHankaku = null;
|
|
110
|
-
strbufZenkaku = null;
|
|
111
|
-
return strRet;
|
|
112
|
-
}
|
|
113
|
-
eval_op_zimeread(dummy) {
|
|
114
|
-
let strRet = null;
|
|
115
|
-
let utilImeJpn = Manager.UtilImeJpn;
|
|
116
|
-
if (utilImeJpn !== null)
|
|
117
|
-
strRet = utilImeJpn.StrImeRead;
|
|
118
|
-
return strRet;
|
|
119
|
-
}
|
|
120
|
-
eval_op_zkana(strVal, mode) {
|
|
121
|
-
let strbufConverted = new StringBuilder(StrUtil.rtrim(strVal));
|
|
122
|
-
let strRet = null;
|
|
123
|
-
for (let i = 0; i < strbufConverted.Length; i = i + 1) {
|
|
124
|
-
let cLetter = strbufConverted.get_Item(i);
|
|
125
|
-
if (mode === 0) {
|
|
126
|
-
if (0x3041 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x3093)
|
|
127
|
-
strbufConverted.set_Item(i, String.fromCharCode(cLetter.charCodeAt(0) + 0x0060));
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
if (0x30A1 <= cLetter.charCodeAt(0) && cLetter.charCodeAt(0) <= 0x30f3)
|
|
131
|
-
strbufConverted.set_Item(i, String.fromCharCode(cLetter.charCodeAt(0) - 0x0060));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
strRet = strbufConverted.ToString();
|
|
135
|
-
strbufConverted = null;
|
|
136
|
-
return strRet;
|
|
137
|
-
}
|
|
138
|
-
eval_op_jcdow(resVal, val1, displayConvertor) {
|
|
139
|
-
this._expressionEvaluator.eval_op_date_str(resVal, val1, "SSSSSST", displayConvertor);
|
|
140
|
-
}
|
|
141
|
-
eval_op_jmonth(resVal, val1) {
|
|
142
|
-
if (val1.MgNumVal === null) {
|
|
143
|
-
this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
val1.MgNumVal = this._expressionEvaluator.mul_add(val1.MgNumVal, 31, -30);
|
|
147
|
-
this._expressionEvaluator.eval_op_month(resVal, val1);
|
|
148
|
-
let month = resVal.MgNumVal.NUM_2_LONG();
|
|
149
|
-
resVal.Attr = StorageAttribute.ALPHA;
|
|
150
|
-
resVal.StrVal = UtilDateJpn.convertStrMonth(month);
|
|
151
|
-
}
|
|
152
|
-
eval_op_jndow(resVal, val1, displayConvertor) {
|
|
153
|
-
if (val1.MgNumVal === null) {
|
|
154
|
-
this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
val1.MgNumVal = this._expressionEvaluator.mul_add(val1.MgNumVal, 0, 6);
|
|
158
|
-
this.eval_op_jcdow(resVal, val1.MgNumVal, displayConvertor);
|
|
159
|
-
}
|
|
160
|
-
eval_op_jyear(resVal, val1) {
|
|
161
|
-
this._expressionEvaluator.eval_op_date_brk(resVal, val1.MgNumVal, 4);
|
|
162
|
-
}
|
|
163
|
-
eval_op_jgengo(resVal, val1, val2, displayConvertor) {
|
|
164
|
-
let strFormat;
|
|
165
|
-
resVal.Attr = StorageAttribute.ALPHA;
|
|
166
|
-
if (val1 === null || val2 === null) {
|
|
167
|
-
this._expressionEvaluator.SetNULL(resVal, StorageAttribute.ALPHA);
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
let intType = val2.NUM_2_LONG();
|
|
171
|
-
if (intType >= 4)
|
|
172
|
-
strFormat = "JJJJ";
|
|
173
|
-
else if (intType >= 2)
|
|
174
|
-
strFormat = "JJ";
|
|
175
|
-
else if (intType >= 1)
|
|
176
|
-
strFormat = "J";
|
|
177
|
-
else {
|
|
178
|
-
resVal.StrVal = "";
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
this._expressionEvaluator.eval_op_date_str(resVal, val1, strFormat, displayConvertor);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
ExpressionLocalJpn.tableZen2Han = [
|
|
185
|
-
[String.fromCharCode(0xff9e), String.fromCharCode(0x0000)],
|
|
186
|
-
[String.fromCharCode(0xff9f), String.fromCharCode(0x0000)],
|
|
187
|
-
[String.fromCharCode(0x309d), String.fromCharCode(0x0000)],
|
|
188
|
-
[String.fromCharCode(0x309e), String.fromCharCode(0x0000)],
|
|
189
|
-
[String.fromCharCode(0x309f), String.fromCharCode(0x0000)],
|
|
190
|
-
[String.fromCharCode(0x30a0), String.fromCharCode(0x0000)],
|
|
191
|
-
[String.fromCharCode(0xff67), String.fromCharCode(0x0000)],
|
|
192
|
-
[String.fromCharCode(0xff71), String.fromCharCode(0x0000)],
|
|
193
|
-
[String.fromCharCode(0xff68), String.fromCharCode(0x0000)],
|
|
194
|
-
[String.fromCharCode(0xff72), String.fromCharCode(0x0000)],
|
|
195
|
-
[String.fromCharCode(0xff69), String.fromCharCode(0x0000)],
|
|
196
|
-
[String.fromCharCode(0xff73), String.fromCharCode(0x0000)],
|
|
197
|
-
[String.fromCharCode(0xff6a), String.fromCharCode(0x0000)],
|
|
198
|
-
[String.fromCharCode(0xff74), String.fromCharCode(0x0000)],
|
|
199
|
-
[String.fromCharCode(0xff6b), String.fromCharCode(0x0000)],
|
|
200
|
-
[String.fromCharCode(0xff75), String.fromCharCode(0x0000)],
|
|
201
|
-
[String.fromCharCode(0xff76), String.fromCharCode(0x0000)],
|
|
202
|
-
[String.fromCharCode(0xff76), String.fromCharCode(0xff9e)],
|
|
203
|
-
[String.fromCharCode(0xff77), String.fromCharCode(0x0000)],
|
|
204
|
-
[String.fromCharCode(0xff77), String.fromCharCode(0xff9e)],
|
|
205
|
-
[String.fromCharCode(0xff78), String.fromCharCode(0x0000)],
|
|
206
|
-
[String.fromCharCode(0xff78), String.fromCharCode(0xff9e)],
|
|
207
|
-
[String.fromCharCode(0xff79), String.fromCharCode(0x0000)],
|
|
208
|
-
[String.fromCharCode(0xff79), String.fromCharCode(0xff9e)],
|
|
209
|
-
[String.fromCharCode(0xff7a), String.fromCharCode(0x0000)],
|
|
210
|
-
[String.fromCharCode(0xff7a), String.fromCharCode(0xff9e)],
|
|
211
|
-
[String.fromCharCode(0xff7b), String.fromCharCode(0x0000)],
|
|
212
|
-
[String.fromCharCode(0xff7b), String.fromCharCode(0xff9e)],
|
|
213
|
-
[String.fromCharCode(0xff7c), String.fromCharCode(0x0000)],
|
|
214
|
-
[String.fromCharCode(0xff7c), String.fromCharCode(0xff9e)],
|
|
215
|
-
[String.fromCharCode(0xff7d), String.fromCharCode(0x0000)],
|
|
216
|
-
[String.fromCharCode(0xff7d), String.fromCharCode(0xff9e)],
|
|
217
|
-
[String.fromCharCode(0xff7e), String.fromCharCode(0x0000)],
|
|
218
|
-
[String.fromCharCode(0xff7e), String.fromCharCode(0xff9e)],
|
|
219
|
-
[String.fromCharCode(0xff7f), String.fromCharCode(0x0000)],
|
|
220
|
-
[String.fromCharCode(0xff7f), String.fromCharCode(0xff9e)],
|
|
221
|
-
[String.fromCharCode(0xff80), String.fromCharCode(0x0000)],
|
|
222
|
-
[String.fromCharCode(0xff80), String.fromCharCode(0xff9e)],
|
|
223
|
-
[String.fromCharCode(0xff81), String.fromCharCode(0x0000)],
|
|
224
|
-
[String.fromCharCode(0xff81), String.fromCharCode(0xff9e)],
|
|
225
|
-
[String.fromCharCode(0xff6f), String.fromCharCode(0x0000)],
|
|
226
|
-
[String.fromCharCode(0xff82), String.fromCharCode(0x0000)],
|
|
227
|
-
[String.fromCharCode(0xff82), String.fromCharCode(0xff9e)],
|
|
228
|
-
[String.fromCharCode(0xff83), String.fromCharCode(0x0000)],
|
|
229
|
-
[String.fromCharCode(0xff83), String.fromCharCode(0xff9e)],
|
|
230
|
-
[String.fromCharCode(0xff84), String.fromCharCode(0x0000)],
|
|
231
|
-
[String.fromCharCode(0xff84), String.fromCharCode(0xff9e)],
|
|
232
|
-
[String.fromCharCode(0xff85), String.fromCharCode(0x0000)],
|
|
233
|
-
[String.fromCharCode(0xff86), String.fromCharCode(0x0000)],
|
|
234
|
-
[String.fromCharCode(0xff87), String.fromCharCode(0x0000)],
|
|
235
|
-
[String.fromCharCode(0xff88), String.fromCharCode(0x0000)],
|
|
236
|
-
[String.fromCharCode(0xff89), String.fromCharCode(0x0000)],
|
|
237
|
-
[String.fromCharCode(0xff8a), String.fromCharCode(0x0000)],
|
|
238
|
-
[String.fromCharCode(0xff8a), String.fromCharCode(0xff9e)],
|
|
239
|
-
[String.fromCharCode(0xff8a), String.fromCharCode(0xff9f)],
|
|
240
|
-
[String.fromCharCode(0xff8b), String.fromCharCode(0x0000)],
|
|
241
|
-
[String.fromCharCode(0xff8b), String.fromCharCode(0xff9e)],
|
|
242
|
-
[String.fromCharCode(0xff8b), String.fromCharCode(0xff9f)],
|
|
243
|
-
[String.fromCharCode(0xff8c), String.fromCharCode(0x0000)],
|
|
244
|
-
[String.fromCharCode(0xff8c), String.fromCharCode(0xff9e)],
|
|
245
|
-
[String.fromCharCode(0xff8c), String.fromCharCode(0xff9f)],
|
|
246
|
-
[String.fromCharCode(0xff8d), String.fromCharCode(0x0000)],
|
|
247
|
-
[String.fromCharCode(0xff8d), String.fromCharCode(0xff9e)],
|
|
248
|
-
[String.fromCharCode(0xff8d), String.fromCharCode(0xff9f)],
|
|
249
|
-
[String.fromCharCode(0xff8e), String.fromCharCode(0x0000)],
|
|
250
|
-
[String.fromCharCode(0xff8e), String.fromCharCode(0xff9e)],
|
|
251
|
-
[String.fromCharCode(0xff8e), String.fromCharCode(0xff9f)],
|
|
252
|
-
[String.fromCharCode(0xff8f), String.fromCharCode(0x0000)],
|
|
253
|
-
[String.fromCharCode(0xff90), String.fromCharCode(0x0000)],
|
|
254
|
-
[String.fromCharCode(0xff91), String.fromCharCode(0x0000)],
|
|
255
|
-
[String.fromCharCode(0xff92), String.fromCharCode(0x0000)],
|
|
256
|
-
[String.fromCharCode(0xff93), String.fromCharCode(0x0000)],
|
|
257
|
-
[String.fromCharCode(0xff6c), String.fromCharCode(0x0000)],
|
|
258
|
-
[String.fromCharCode(0xff94), String.fromCharCode(0x0000)],
|
|
259
|
-
[String.fromCharCode(0xff6d), String.fromCharCode(0x0000)],
|
|
260
|
-
[String.fromCharCode(0xff95), String.fromCharCode(0x0000)],
|
|
261
|
-
[String.fromCharCode(0xff6e), String.fromCharCode(0x0000)],
|
|
262
|
-
[String.fromCharCode(0xff96), String.fromCharCode(0x0000)],
|
|
263
|
-
[String.fromCharCode(0xff97), String.fromCharCode(0x0000)],
|
|
264
|
-
[String.fromCharCode(0xff98), String.fromCharCode(0x0000)],
|
|
265
|
-
[String.fromCharCode(0xff99), String.fromCharCode(0x0000)],
|
|
266
|
-
[String.fromCharCode(0xff9a), String.fromCharCode(0x0000)],
|
|
267
|
-
[String.fromCharCode(0xff9b), String.fromCharCode(0x0000)],
|
|
268
|
-
[String.fromCharCode(0x30ee), String.fromCharCode(0x0000)],
|
|
269
|
-
[String.fromCharCode(0xff9c), String.fromCharCode(0x0000)],
|
|
270
|
-
[String.fromCharCode(0x30f0), String.fromCharCode(0x0000)],
|
|
271
|
-
[String.fromCharCode(0x30f1), String.fromCharCode(0x0000)],
|
|
272
|
-
[String.fromCharCode(0xff66), String.fromCharCode(0x0000)],
|
|
273
|
-
[String.fromCharCode(0xff9d), String.fromCharCode(0x0000)],
|
|
274
|
-
[String.fromCharCode(0xff73), String.fromCharCode(0xff9e)],
|
|
275
|
-
[String.fromCharCode(0xff76), String.fromCharCode(0x0000)],
|
|
276
|
-
[String.fromCharCode(0xff79), String.fromCharCode(0x0000)]
|
|
277
|
-
];
|
|
278
|
-
ExpressionLocalJpn.tableExceptZen2Han = [
|
|
279
|
-
[String.fromCharCode(0x2018), String.fromCharCode(0x0060)],
|
|
280
|
-
[String.fromCharCode(0x2019), String.fromCharCode(0x0027)],
|
|
281
|
-
[String.fromCharCode(0x201D), String.fromCharCode(0x0022)],
|
|
282
|
-
[String.fromCharCode(0x3000), String.fromCharCode(0x0020)],
|
|
283
|
-
[String.fromCharCode(0x3001), String.fromCharCode(0xFF64)],
|
|
284
|
-
[String.fromCharCode(0x3002), String.fromCharCode(0xFF61)],
|
|
285
|
-
[String.fromCharCode(0x300C), String.fromCharCode(0xFF62)],
|
|
286
|
-
[String.fromCharCode(0x300D), String.fromCharCode(0xFF63)],
|
|
287
|
-
[String.fromCharCode(0x30FB), String.fromCharCode(0xFF65)],
|
|
288
|
-
[String.fromCharCode(0x30FC), String.fromCharCode(0xFF70)],
|
|
289
|
-
[String.fromCharCode(0xFFE5), String.fromCharCode(0x005C)]
|
|
290
|
-
];
|
|
291
|
-
ExpressionLocalJpn.tableHan2Zen = [
|
|
292
|
-
String.fromCharCode(0x3002), String.fromCharCode(0x300c), String.fromCharCode(0x300d),
|
|
293
|
-
String.fromCharCode(0x3001), String.fromCharCode(0x30fb), String.fromCharCode(0x30f2),
|
|
294
|
-
String.fromCharCode(0x30a1), String.fromCharCode(0x30a3), String.fromCharCode(0x30a5),
|
|
295
|
-
String.fromCharCode(0x30a7), String.fromCharCode(0x30a9), String.fromCharCode(0x30e3),
|
|
296
|
-
String.fromCharCode(0x30e5), String.fromCharCode(0x30e7), String.fromCharCode(0x30c3),
|
|
297
|
-
String.fromCharCode(0x30fc), String.fromCharCode(0x30a2), String.fromCharCode(0x30a4),
|
|
298
|
-
String.fromCharCode(0x30a6), String.fromCharCode(0x30a8), String.fromCharCode(0x30aa),
|
|
299
|
-
String.fromCharCode(0x30ab), String.fromCharCode(0x30ad), String.fromCharCode(0x30af),
|
|
300
|
-
String.fromCharCode(0x30b1), String.fromCharCode(0x30b3), String.fromCharCode(0x30b5),
|
|
301
|
-
String.fromCharCode(0x30b7), String.fromCharCode(0x30b9), String.fromCharCode(0x30bb),
|
|
302
|
-
String.fromCharCode(0x30bd), String.fromCharCode(0x30bf), String.fromCharCode(0x30c1),
|
|
303
|
-
String.fromCharCode(0x30c4), String.fromCharCode(0x30c6), String.fromCharCode(0x30c8),
|
|
304
|
-
String.fromCharCode(0x30ca), String.fromCharCode(0x30cb), String.fromCharCode(0x30cc),
|
|
305
|
-
String.fromCharCode(0x30cd), String.fromCharCode(0x30ce), String.fromCharCode(0x30cf),
|
|
306
|
-
String.fromCharCode(0x30d2), String.fromCharCode(0x30d5), String.fromCharCode(0x30d8),
|
|
307
|
-
String.fromCharCode(0x30db), String.fromCharCode(0x30de), String.fromCharCode(0x30df),
|
|
308
|
-
String.fromCharCode(0x30e0), String.fromCharCode(0x30e1), String.fromCharCode(0x30e2),
|
|
309
|
-
String.fromCharCode(0x30e4), String.fromCharCode(0x30e6), String.fromCharCode(0x30e8),
|
|
310
|
-
String.fromCharCode(0x30e9), String.fromCharCode(0x30ea), String.fromCharCode(0x30eb),
|
|
311
|
-
String.fromCharCode(0x30ec), String.fromCharCode(0x30ed), String.fromCharCode(0x30ef),
|
|
312
|
-
String.fromCharCode(0x30f3), String.fromCharCode(0x309b), String.fromCharCode(0x309c)
|
|
313
|
-
];
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwcmVzc2lvbkxvY2FsSnBuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9leHAvRXhwcmVzc2lvbkxvY2FsSnBuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFjLGdCQUFnQixFQUFFLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BGLE9BQU8sRUFBUyxPQUFPLEVBQTZCLE1BQU0sZ0JBQWdCLENBQUM7QUFRM0UsTUFBTSxPQUFPLGtCQUFrQjtJQTZKN0IsWUFBWSxtQkFBd0M7UUFGNUMseUJBQW9CLEdBQXdCLElBQUksQ0FBQztRQUd2RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDbEQsQ0FBQztJQVNELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksYUFBYSxHQUFrQixJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxhQUFhLEdBQWtCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksTUFBTSxHQUFXLElBQUksQ0FBQztRQUUxQixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMzRCxJQUFJLE9BQU8sR0FBVyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBR2hELElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FB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QUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUMzRCxDQUFDO0FBV0cscUNBQWtCLEdBQ3ZCO0lBQ0UsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDM0QsQ0FBQztBQVVHLCtCQUFZLEdBQ2pCO0lBQ0UsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDckYsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNyRixNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7Q0FDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7U3RyVXRpbCwgVXRpbEltZUpwbiwgU3RvcmFnZUF0dHJpYnV0ZSwgVXRpbERhdGVKcG59IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXhwVmFsLCBNYW5hZ2VyLCBOVU1fVFlQRSwgRGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7RXhwcmVzc2lvbkV2YWx1YXRvcn0gZnJvbSBcIi4vRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBKUE46IENsYXNzIGZvciBKYXBhbmVzZSBleHRlbmRlZCBmdW5jdGlvbnNcclxuLy8vIDwvc3VtbWFyeT5cclxuLy8vIDxhdXRob3I+ICBUb3NoaXJvIE5ha2F5b3NoaSAoTVNKKVxyXG4vLy8gPC9hdXRob3I+XHJcbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uTG9jYWxKcG4ge1xyXG4gIHN0YXRpYyB0YWJsZVplbjJIYW46IHN0cmluZ1tdW10gPVxyXG4gICAgW1xyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2EpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2EpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2MpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2MpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2QpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2QpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2YpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmN2YpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmODkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZildLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOGYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNmUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOTkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjApLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNjYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmOWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZmY5ZSldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldLFxyXG4gICAgICBbU3RyaW5nLmZyb21DaGFyQ29kZSgweGZmNzkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCldXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIG1hcHBpbmcgdGFibGUgb2YgSmFwYW5lc2UgY2hhcmFjdGVycyAjMlxyXG4gIC8vLyAgIGNvbnZlcnQgZnJvbSB6ZW5rYWt1IChleGNlcHRpb25hbCkgdG8gaGFua2FrdVxyXG4gIC8vL1xyXG4gIC8vLyAgIHJvdyBpbmRleDogbm8gc3BlY2lhbCBtZWFuaW5nXHJcbiAgLy8vICAgY29sdW1uICMxOiB6ZW5rYWt1KGZ1bGwtd2lkdGgpIGNvZGVcclxuICAvLy8gICBjb2x1bW4gIzI6IGhhbmtha3UoaGFsZi13aWR0aCkgY29kZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIHRhYmxlRXhjZXB0WmVuMkhhbjogc3RyaW5nW11bXSA9XHJcbiAgICBbXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDYwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDI3KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxRCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIyKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjY0KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwMiksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYxKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwQyksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYyKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwRCksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjYzKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBGQiksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjY1KV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBGQyksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRjcwKV0sXHJcbiAgICAgIFtTdHJpbmcuZnJvbUNoYXJDb2RlKDB4RkZFNSksIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDVDKV1cclxuICAgIF07XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgbWFwcGluZyB0YWJsZSBvZiBKYXBhbmVzZSBjaGFyYWN0ZXJzICMzXHJcbiAgLy8vICAgY29udmVydCBmcm9tIGhhbmtha3UgKDB4ZmY2MSB+IDB4ZmY5ZikgdG8gemVua2FrdVxyXG4gIC8vL1xyXG4gIC8vLyAgIHJvdyBpbmRleDogaGFua2FrdShoYWxmLXdpZHRoKSBjb2RlIC0obWludXMpIDB4ZmY2MVxyXG4gIC8vLyAgIGNvbHVtbjogICAgemVua2FrdShmdWxsLXdpZHRoKSBjb2RlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgdGFibGVIYW4yWmVuOiBzdHJpbmdbXSA9XHJcbiAgICBbXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAyKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwMGMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzAwZCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAxKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZmIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBmMiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGExKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhNSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGE3KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlMyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU1KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTcpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjMyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGZjKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhNCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGE2KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYTgpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhYSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGFiKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBhZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGIxKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYjMpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBiNSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGI3KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYjkpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBiYiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGJkKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYmYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjMSksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGM0KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwYzYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGNhKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwY2IpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjYyksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGNkKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwY2UpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBjZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGQyKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZDUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBkOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGRiKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZGUpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBkZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGUwKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlMiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU0KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZTYpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlOCksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGU5KSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWEpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlYiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGVjKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZWQpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzBlZiksXHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMGYzKSwgU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwOWIpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MzA5YylcclxuICAgIF07XHJcblxyXG5cclxuICBwcml2YXRlIF9leHByZXNzaW9uRXZhbHVhdG9yOiBFeHByZXNzaW9uRXZhbHVhdG9yID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoZXhwcmVzc2lvbkV2YWx1YXRvcjogRXhwcmVzc2lvbkV2YWx1YXRvcikge1xyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvciA9IGV4cHJlc3Npb25FdmFsdWF0b3I7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSEFOOiBDb252ZXJ0IGEgc3RyaW5nIGZyb20gemVua2FrdShmdWxsLXdpZHRoKSB0byBoYW5rYWt1KGhhbGYtd2lkdGgpXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clZhbDpcIj56ZW5rYWt1IHN0cmluZ1xyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gaGFuYWtha3Ugc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBldmFsX29wX2hhbihzdHJWYWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyYnVmWmVua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKFN0clV0aWwucnRyaW0oc3RyVmFsKSk7XHJcbiAgICBsZXQgc3RyYnVmSGFua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKDApO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmWmVua2FrdS5MZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgY0xldHRlcjogc3RyaW5nID0gc3RyYnVmWmVua2FrdS5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgIC8vIGRpZ2l0LCBhbHBoYWJldCBhbmQgZXRjLlxyXG4gICAgICBpZiAoMHhmZjAxIDw9IGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAmJiBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPD0gMHhmZjVlICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjNjICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjQwKSB7XHJcbiAgICAgICAgc3RyYnVmSGFua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgLSAweGZlZTApKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBrYXRha2FuYVxyXG4gICAgICBlbHNlIGlmICgweDMwOWIgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweDMwZjYpIHtcclxuICAgICAgICBzdHJidWZIYW5rYWt1LkFwcGVuZChFeHByZXNzaW9uTG9jYWxKcG4udGFibGVaZW4ySGFuW2NMZXR0ZXIuY2hhckNvZGVBdCgwKSAtIDB4MzA5Yl1bMF0pO1xyXG5cclxuICAgICAgICBpZiAoRXhwcmVzc2lvbkxvY2FsSnBuLnRhYmxlWmVuMkhhbltjTGV0dGVyLmNoYXJDb2RlQXQoMCkgLSAweDMwOWJdWzFdLmNoYXJDb2RlQXQoMCkgPiAweDAwMDApIHtcclxuICAgICAgICAgIHN0cmJ1Zkhhbmtha3UuQXBwZW5kKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZVplbjJIYW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHgzMDliXVsxXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIG90aGVyc1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgajogbnVtYmVyO1xyXG4gICAgICAgIGZvciAoaiA9IDA7IGogPCBFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICBpZiAoY0xldHRlciA9PT0gRXhwcmVzc2lvbkxvY2FsSnBuLnRhYmxlRXhjZXB0WmVuMkhhbltqXVswXSkge1xyXG4gICAgICAgICAgICBzdHJidWZIYW5rYWt1LkFwcGVuZChFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuW2pdWzFdKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqID09PSBFeHByZXNzaW9uTG9jYWxKcG4udGFibGVFeGNlcHRaZW4ySGFuLmxlbmd0aClcclxuICAgICAgICAgIHN0cmJ1Zkhhbmtha3UuQXBwZW5kKGNMZXR0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RyUmV0ID0gc3RyYnVmSGFua2FrdS5Ub1N0cmluZygpO1xyXG5cclxuICAgIHN0cmJ1Zlplbmtha3UgPSBudWxsO1xyXG4gICAgc3RyYnVmSGFua2FrdSA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBaRU4vWkVOUzogQ29udmVydCBhIHN0cmluZyBmcm9tIGhhbmtha3UoaGFsZi13aWR0aCkgdG8gemVua2FrdShmdWxsLXdpZHRoKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJWYWw6XCI+aGFua2FrdSBzdHJpbmdcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1vZGU6XCI+c3BlY2lmeSBob3cgdG8gY29udmVydCBhIGhhbmtha3Ugc3BhY2VcclxuICAvLy8gICAwID0gdG8gaGFua2FrdSBzcGFjZSB4IDFcclxuICAvLy8gICAxID0gdG8gemVua2FrdSBzcGFjZSB4IDFcclxuICAvLy8gICAyID0gdG8gaGFua2FrdSBzcGFjZSB4IDJcclxuICAvLy8gPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+IHplbmtha3Ugc3RyaW5nXHJcbiAgLy8vIDwvcmV0dXJucz5cclxuICBldmFsX29wX3plbnMoc3RyVmFsOiBzdHJpbmcsIG1vZGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyYnVmSGFua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKFN0clV0aWwucnRyaW0oc3RyVmFsKSk7XHJcbiAgICBsZXQgc3RyYnVmWmVua2FrdTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKDApO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmSGFua2FrdS5MZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgY0xldHRlcjogc3RyaW5nID0gc3RyYnVmSGFua2FrdS5nZXRfSXRlbShpKTtcclxuXHJcbiAgICAgIC8vIHNwYWNlLCBkaWdpdCwgYWxwaGFiZXQgYW5kIGV0Yy5cclxuICAgICAgaWYgKDB4MDAyMCA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4MDA3ZSkge1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGNMZXR0ZXIpIHtcclxuICAgICAgICAgIGNhc2UgU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApOiAvLyBzcGFjZVxyXG4gICAgICAgICAgICBpZiAobW9kZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgzMDAwKSk7IC8vIHplbmtha3Ugc3BhY2UgeCAxL0Jyb3dzZXJDbGllbnQvXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobW9kZSA9PT0gMikge1xyXG4gICAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDIwKSk7IC8vIGhhbmtha3Ugc3BhY2UgeCAyXHJcbiAgICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiBtb2RlID09IDAgKi9cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMjApKTsgLy8gaGFua2FrdSBzcGFjZSB4IDFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgY2FzZSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAyMik6IC8vIFwiXHJcbiAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHgyMDFkKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgICBjYXNlIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDI3KTogLy8gJ1xyXG4gICAgICAgICAgICBzdHJidWZaZW5rYWt1LkFwcGVuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOSkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgY2FzZSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDA1Yyk6IC8vIFxcXHJcbiAgICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKFN0cmluZy5mcm9tQ2hhckNvZGUoMHhmZmU1KSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuXHJcbiAgICAgICAgICBjYXNlIFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDYwKTogLy8gYFxyXG4gICAgICAgICAgICBzdHJidWZaZW5rYWt1LkFwcGVuZChTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAxOCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgKyAweGZlZTApKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGt1dG91dGVuLCBrYXRha2FuYSBhbmQgZXRjLlxyXG4gICAgICBlbHNlIGlmICgweGZmNjEgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweGZmOWYpIHtcclxuICAgICAgICBsZXQgY0NvbWJpbmU6IHN0cmluZyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHgwMDAwKTsgLy8gZmxhZyBvZiBkYWt1b24gb3IgaGFuLWRha3VvblxyXG5cclxuICAgICAgICBpZiAoKGkgKyAxKSA8IHN0cmJ1Zkhhbmtha3UuTGVuZ3RoKSB7XHJcbiAgICAgICAgICAvLyBjaGVjayB0aGUgbmV4dCBsZXR0ZXJcclxuICAgICAgICAgIGNDb21iaW5lID0gc3RyYnVmSGFua2FrdS5nZXRfSXRlbShpICsgMSk7XHJcbiAgICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSAhPT0gMHhmZjllICYmIGNDb21iaW5lLmNoYXJDb2RlQXQoMCkgIT09IDB4ZmY5ZilcclxuICAgICAgICAgICAgY0NvbWJpbmUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSA9PT0gMHhmZjllKVxyXG4gICAgICAgIC8vIHN5bWJvbCBvZiBkYWt1b25cclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZiAoMHhmZjc2IDw9IGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAmJiBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPD0gMHhmZjg0IHx8IDB4ZmY4YSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4ZmY4ZSlcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSArIDB4MDAxKSk7XHJcbiAgICAgICAgICBlbHNlIGlmIChjTGV0dGVyLmNoYXJDb2RlQXQoMCkgPT09IDB4ZmY3MylcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoU3RyaW5nLmZyb21DaGFyQ29kZSgweDMwZjQpKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY0NvbWJpbmUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MDAwMCk7IC8vIHRoZSBzeW1ib2wgaXMgaW5kZXBlbmRlbnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSA9PT0gMHhmZjlmKVxyXG4gICAgICAgIC8vIHN5bWJvbCBvZiBoYW4tZGFrdW9uXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWYgKDB4ZmY4YSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4ZmY4ZSlcclxuICAgICAgICAgICAgc3RyYnVmWmVua2FrdS5BcHBlbmQoKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSArIDB4MDAyKSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNDb21iaW5lID0gU3RyaW5nLmZyb21DaGFyQ29kZSgweDAwMDApOyAvLyB0aGUgc3ltYm9sIGlzIGluZGVwZW5kZW50XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY0NvbWJpbmUuY2hhckNvZGVBdCgwKSAhPT0gMHgwMDAwKVxyXG4gICAgICAgICAgaSsrO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKEV4cHJlc3Npb25Mb2NhbEpwbi50YWJsZUhhbjJaZW5bY0xldHRlci5jaGFyQ29kZUF0KDApIC0gMHhmZjYxXSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gb3RoZXJzXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHN0cmJ1Zlplbmtha3UuQXBwZW5kKGNMZXR0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RyUmV0ID0gc3RyYnVmWmVua2FrdS5Ub1N0cmluZygpO1xyXG5cclxuICAgIHN0cmJ1Zkhhbmtha3UgPSBudWxsO1xyXG4gICAgc3RyYnVmWmVua2FrdSA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBaSU1FUmVhZDogcmV0dXJuIGNvbXBvc2l0aW9uIHN0cmluZyBpbiBJTUVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3BfemltZXJlYWQoZHVtbXk6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyUmV0OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgbGV0IHV0aWxJbWVKcG46IFV0aWxJbWVKcG4gPSBNYW5hZ2VyLlV0aWxJbWVKcG47XHJcblxyXG4gICAgaWYgKHV0aWxJbWVKcG4gIT09IG51bGwpXHJcbiAgICAgIHN0clJldCA9IHV0aWxJbWVKcG4uU3RySW1lUmVhZDtcclxuXHJcbiAgICByZXR1cm4gc3RyUmV0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFpLQU5BOiBDb252ZXJ0IGEgc3RyaW5nIGZyb20gaGlyYWdhbmEgdG8ga2F0YWthbmEgKGFuZCB2aWNlIHZlcnNhKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJWYWw6XCI+aGFua2FrdShvciBrYXRha2FuYSkgc3RyaW5nXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtb2RlOlwiPnNwZWNpZnkgdGhlIGRpcmVjdGlvbiBvZiBjb252ZXJzaW9uXHJcbiAgLy8vICAgMCA9IGZyb20gaGlyYWdhbmEgdG8ga2F0YWthbmFcclxuICAvLy8gICAxID0gZnJvbSBrYXRha2FuYSB0byBoaXJhZ2FuYVxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4ga2F0YWthbmEob3IgaGlyYWdhbmEpIHN0cmluZ1xyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZXZhbF9vcF96a2FuYShzdHJWYWw6IHN0cmluZywgbW9kZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHJidWZDb252ZXJ0ZWQ6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcihTdHJVdGlsLnJ0cmltKHN0clZhbCkpO1xyXG4gICAgbGV0IHN0clJldDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3RyYnVmQ29udmVydGVkLkxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBjTGV0dGVyOiBzdHJpbmcgPSBzdHJidWZDb252ZXJ0ZWQuZ2V0X0l0ZW0oaSk7XHJcblxyXG4gICAgICBpZiAobW9kZSA9PT0gMCkge1xyXG4gICAgICAgIC8vIGhpcmFnYW5hIC0tPiBrYXRha2FuYVxyXG4gICAgICAgIGlmICgweDMwNDEgPD0gY0xldHRlci5jaGFyQ29kZUF0KDApICYmIGNMZXR0ZXIuY2hhckNvZGVBdCgwKSA8PSAweDMwOTMpXHJcbiAgICAgICAgICBzdHJidWZDb252ZXJ0ZWQuc2V0X0l0ZW0oaSwgU3RyaW5nLmZyb21DaGFyQ29kZShjTGV0dGVyLmNoYXJDb2RlQXQoMCkgKyAweDAwNjApKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBrYXRha2FuYSAtLT4gaGlyYWdhbmFcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKDB4MzBBMSA8PSBjTGV0dGVyLmNoYXJDb2RlQXQoMCkgJiYgY0xldHRlci5jaGFyQ29kZUF0KDApIDw9IDB4MzBmMylcclxuICAgICAgICAgIHN0cmJ1ZkNvbnZlcnRlZC5zZXRfSXRlbShpLCBTdHJpbmcuZnJvbUNoYXJDb2RlKGNMZXR0ZXIuY2hhckNvZGVBdCgwKSAtIDB4MDA2MCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBzdHJSZXQgPSBzdHJidWZDb252ZXJ0ZWQuVG9TdHJpbmcoKTtcclxuICAgIHN0cmJ1ZkNvbnZlcnRlZCA9IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHN0clJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBKQ0RPVzogSmFwYW5lc2UgdmVyc2lvbiBvZiBDRE9XXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBldmFsX29wX2pjZG93KHJlc1ZhbDogRXhwVmFsLCB2YWwxOiBOVU1fVFlQRSwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsX29wX2RhdGVfc3RyKHJlc1ZhbCwgdmFsMSwgXCJTU1NTU1NUXCIsIGRpc3BsYXlDb252ZXJ0b3IpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpNT05USDogSmFwYW5lc2UgdmVyc2lvbiBvZiBOTU9OVEhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3Bfam1vbnRoKHJlc1ZhbDogRXhwVmFsLCB2YWwxOiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIGlmICh2YWwxLk1nTnVtVmFsID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuU2V0TlVMTChyZXNWYWwsIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFsMS5NZ051bVZhbCA9IHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IubXVsX2FkZCh2YWwxLk1nTnVtVmFsLCAzMSwgLTMwKTtcclxuICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuZXZhbF9vcF9tb250aChyZXNWYWwsIHZhbDEpO1xyXG4gICAgbGV0IG1vbnRoOiBudW1iZXIgPSByZXNWYWwuTWdOdW1WYWwuTlVNXzJfTE9ORygpO1xyXG5cclxuICAgIHJlc1ZhbC5BdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgIHJlc1ZhbC5TdHJWYWwgPSBVdGlsRGF0ZUpwbi5jb252ZXJ0U3RyTW9udGgobW9udGgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIEpORE9XOiBKYXBhbmVzZSB2ZXJzaW9uIG9mIE5ET1dcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGV2YWxfb3Bfam5kb3cocmVzVmFsOiBFeHBWYWwsIHZhbDE6IEV4cFZhbCwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgaWYgKHZhbDEuTWdOdW1WYWwgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5TZXROVUxMKHJlc1ZhbCwgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YWwxLk1nTnVtVmFsID0gdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5tdWxfYWRkKHZhbDEuTWdOdW1WYWwsIDAsIDYpO1xyXG4gICAgdGhpcy5ldmFsX29wX2pjZG93KHJlc1ZhbCwgdmFsMS5NZ051bVZhbCwgZGlzcGxheUNvbnZlcnRvcik7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgSllFQVI6IFJldHVybiBKYXBhbmVzZSB5ZWFyIG9mIGFuIGVyYVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZXZhbF9vcF9qeWVhcihyZXNWYWw6IEV4cFZhbCwgdmFsMTogRXhwVmFsKTogdm9pZCB7XHJcbiAgICB0aGlzLl9leHByZXNzaW9uRXZhbHVhdG9yLmV2YWxfb3BfZGF0ZV9icmsocmVzVmFsLCB2YWwxLk1nTnVtVmFsLCA0KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBKR0VOR086IFJldHVybiBKYXBhbmVzZSBnZW5nbyAodGhlIG5hbWUgb2YgYW4gZXJhKVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZXZhbF9vcF9qZ2VuZ28ocmVzVmFsOiBFeHBWYWwsIHZhbDE6IE5VTV9UWVBFLCB2YWwyOiBOVU1fVFlQRSwgZGlzcGxheUNvbnZlcnRvcjogRGlzcGxheUNvbnZlcnRvcik6IHZvaWQge1xyXG4gICAgbGV0IHN0ckZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgIHJlc1ZhbC5BdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuXHJcbiAgICBpZiAodmFsMSA9PT0gbnVsbCB8fCB2YWwyID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2V4cHJlc3Npb25FdmFsdWF0b3IuU2V0TlVMTChyZXNWYWwsIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGludFR5cGU6IG51bWJlciA9IHZhbDIuTlVNXzJfTE9ORygpO1xyXG5cclxuICAgIGlmIChpbnRUeXBlID49IDQpXHJcbiAgICAgIHN0ckZvcm1hdCA9IFwiSkpKSlwiO1xyXG4gICAgZWxzZSBpZiAoaW50VHlwZSA+PSAyKVxyXG4gICAgICBzdHJGb3JtYXQgPSBcIkpKXCI7XHJcbiAgICBlbHNlIGlmIChpbnRUeXBlID49IDEpXHJcbiAgICAgIHN0ckZvcm1hdCA9IFwiSlwiO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJlc1ZhbC5TdHJWYWwgPSBcIlwiO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsX29wX2RhdGVfc3RyKHJlc1ZhbCwgdmFsMSwgc3RyRm9ybWF0LCBkaXNwbGF5Q29udmVydG9yKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { NString } from "@magic-xpa/mscorelib";
|
|
2
|
-
import { StorageAttribute, XMLConstants, XmlParser } from "@magic-xpa/utils";
|
|
3
|
-
import { ExpVal, RecordUtils } from "@magic-xpa/gui";
|
|
4
|
-
import { MirrorPrmMap, ParamParseResult } from "../util/PrmMap";
|
|
5
|
-
import { ConstInterface } from "../ConstInterface";
|
|
6
|
-
import { Environment } from "../env/Environment";
|
|
7
|
-
export class MirrorExpVal extends ExpVal {
|
|
8
|
-
constructor(val) {
|
|
9
|
-
if (arguments.length === 0) {
|
|
10
|
-
super();
|
|
11
|
-
this.constructor_2();
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
super();
|
|
15
|
-
this.constructor_3(val);
|
|
16
|
-
}
|
|
17
|
-
constructor_2() {
|
|
18
|
-
}
|
|
19
|
-
constructor_3(val) {
|
|
20
|
-
super.Copy(val);
|
|
21
|
-
}
|
|
22
|
-
mirrorToXML() {
|
|
23
|
-
let toBase64 = (Environment.Instance.GetDebugLevel() <= 1);
|
|
24
|
-
let cellAttr = (this.Attr === StorageAttribute.BLOB_VECTOR ? this.VectorField.getCellsType() : StorageAttribute.SKIP);
|
|
25
|
-
let value = "";
|
|
26
|
-
value = RecordUtils.itemValToXML(super.ToMgVal(), this.Attr, cellAttr, toBase64);
|
|
27
|
-
return ConstInterface.MG_ATTR_PAR_ATTRS + "=\"" + this.Attr + "\" " + ConstInterface.MG_ATTR_LEN + "=" +
|
|
28
|
-
value.length + " " + ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + value + "\"";
|
|
29
|
-
}
|
|
30
|
-
init(name, xmlParser) {
|
|
31
|
-
let valueOffset, attrOffset, lenOffset, valueLen, lenOffsetEnd, count;
|
|
32
|
-
let currType;
|
|
33
|
-
let isNull;
|
|
34
|
-
let paramAttr, paramValue, correctValue = null;
|
|
35
|
-
count = xmlParser.getXMLdata().indexOf(XMLConstants.TAG_TERM, xmlParser.getCurrIndex()) - xmlParser.getCurrIndex();
|
|
36
|
-
attrOffset = NString.IndexOf(xmlParser.getXMLdata(), ConstInterface.MG_ATTR_PAR_ATTRS, xmlParser.getCurrIndex(), count);
|
|
37
|
-
if (attrOffset !== -1) {
|
|
38
|
-
attrOffset += ConstInterface.MG_ATTR_PAR_ATTRS.length + 2;
|
|
39
|
-
paramAttr = xmlParser.getXMLdata().substr(attrOffset, 1);
|
|
40
|
-
lenOffset = xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_LEN, attrOffset);
|
|
41
|
-
lenOffset += ConstInterface.MG_ATTR_LEN.length + 1;
|
|
42
|
-
lenOffsetEnd = xmlParser.getXMLdata().indexOf(" ", lenOffset);
|
|
43
|
-
valueLen = XmlParser.getInt(xmlParser.getXMLdata().substr(lenOffset, lenOffsetEnd - lenOffset));
|
|
44
|
-
valueOffset = xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_ENV_VALUE, lenOffset);
|
|
45
|
-
valueOffset += ConstInterface.MG_ATTR_ENV_VALUE.length + 2;
|
|
46
|
-
paramValue = xmlParser.getXMLdata().substr(valueOffset, valueLen);
|
|
47
|
-
currType = paramAttr[0];
|
|
48
|
-
correctValue = RecordUtils.getString(paramValue, currType);
|
|
49
|
-
isNull = false;
|
|
50
|
-
xmlParser.setCurrIndex(valueOffset + valueLen);
|
|
51
|
-
}
|
|
52
|
-
else if (xmlParser.getXMLdata().indexOf(ConstInterface.MG_ATTR_ENV_REMOVED, xmlParser.getCurrIndex()) !== -1) {
|
|
53
|
-
return ParamParseResult.DELETE;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
currType = StorageAttribute.NONE;
|
|
57
|
-
isNull = true;
|
|
58
|
-
}
|
|
59
|
-
super.Init(currType, isNull, correctValue);
|
|
60
|
-
return ParamParseResult.TOUPPER;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
export class GlobalParams extends MirrorPrmMap {
|
|
64
|
-
constructor() {
|
|
65
|
-
super(MirrorExpVal);
|
|
66
|
-
this.mirroredID = ConstInterface.MG_TAG_GLOBALPARAMSCHANGES;
|
|
67
|
-
}
|
|
68
|
-
set(s, v) {
|
|
69
|
-
if (v.IsNull || v.isEmptyString())
|
|
70
|
-
super.remove(s.trim().toUpperCase());
|
|
71
|
-
else
|
|
72
|
-
super.setValue(s.trim().toUpperCase(), new MirrorExpVal(v));
|
|
73
|
-
}
|
|
74
|
-
get(s) {
|
|
75
|
-
try {
|
|
76
|
-
return super.getvalue(s.trim().toUpperCase());
|
|
77
|
-
}
|
|
78
|
-
catch (err) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
GlobalParams.Instance = new GlobalParams();
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsUGFyYW1zVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9HbG9iYWxQYXJhbXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtJQUd0QyxZQUFZLEdBQVk7UUFDdEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7SUFDckIsQ0FBQztJQUtPLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxRQUFRLEdBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBFLElBQUksUUFBUSxHQUFxQixDQUFDLElBQUksQ0FB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O0FBN0JNLHFCQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge1N0b3JhZ2VBdHRyaWJ1dGUsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBFeHBWYWwsIFJlY29yZFV0aWxzIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7SU1pcnJvclhNTH0gZnJvbSBcIi4uL3V0aWwvSU1pcnJvclhNTFwiO1xyXG5pbXBvcnQge01pcnJvclBybU1hcCwgUGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi9lbnYvRW52aXJvbm1lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNaXJyb3JFeHBWYWwgZXh0ZW5kcyBFeHBWYWwgaW1wbGVtZW50cyBJTWlycm9yWE1MIHtcclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHZhbDogRXhwVmFsKTtcclxuICBjb25zdHJ1Y3Rvcih2YWw/OiBFeHBWYWwpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKHZhbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8zKHZhbDogRXhwVmFsKTogdm9pZCB7XHJcbiAgICBzdXBlci5Db3B5KHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWlycm9yVG9YTUwoKTogc3RyaW5nIHtcclxuICAgIGxldCB0b0Jhc2U2NDogYm9vbGVhbiA9IChFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXREZWJ1Z0xldmVsKCkgPD0gMSk7XHJcblxyXG4gICAgbGV0IGNlbGxBdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gKHRoaXMuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUiA/IHRoaXMuVmVjdG9yRmllbGQuZ2V0Q2VsbHNUeXBlKCkgOiBTdG9yYWdlQXR0cmlidXRlLlNLSVApO1xyXG5cclxuICAgIC8vIFN0b3J5IDEzMTk2MSA6IERvIG5vdCBzZXJpYWxpemUgZG90bmV0IHBhcmFtc1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdmFsdWUgPSBSZWNvcmRVdGlscy5pdGVtVmFsVG9YTUwoc3VwZXIuVG9NZ1ZhbCgpLCB0aGlzLkF0dHIsIGNlbGxBdHRyLCB0b0Jhc2U2NCk7XHJcblxyXG4gICAgcmV0dXJuIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTICsgXCI9XFxcIlwiICsgdGhpcy5BdHRyICsgXCJcXFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MRU4gKyBcIj1cIiArXHJcbiAgICAgIHZhbHVlLmxlbmd0aCArIFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyB2YWx1ZSArIFwiXFxcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluaXRpYWxpemUgdGhlIG9iamVjdCBmcm9tIHRoZSBYTUwgYnVmZmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInhtbFBhcnNlclwiPjwvcGFyYW0+XHJcbiAgcHVibGljIGluaXQobmFtZTogU3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQge1xyXG4gICAgbGV0IHZhbHVlT2Zmc2V0OiBudW1iZXIsIGF0dHJPZmZzZXQ6IG51bWJlciwgbGVuT2Zmc2V0OiBudW1iZXIsIHZhbHVlTGVuOiBudW1iZXIsIGxlbk9mZnNldEVuZDogbnVtYmVyLFxyXG4gICAgICBjb3VudDogbnVtYmVyO1xyXG4gICAgbGV0IGN1cnJUeXBlOiBTdG9yYWdlQXR0cmlidXRlO1xyXG4gICAgbGV0IGlzTnVsbDogYm9vbGVhbjtcclxuICAgIGxldCBwYXJhbUF0dHI6IHN0cmluZywgcGFyYW1WYWx1ZTogc3RyaW5nLCBjb3JyZWN0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLy8gTG9vayBmb3IgcGFyYW1ldGVyIGF0dHJpYnV0ZXMuIFhtbCBwYXJzZXIncyBjdXJyZW50IGluZGV4IGlzIHNldCB0byBlbmQgb2YgTmFtZS5cclxuICAgIC8vIFNvIGxvb2sgZm9yIGF0dHJpYnV0ZSAoaS5lLiBcImF0dHJcIikgZnJvbSBjdXJyZW50IGluZGV4IHRvIHRoZSBlbmQgb2YgdGFnIChpLmUuIFwiLz5cIilcclxuICAgIGNvdW50ID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfVEVSTSwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKSAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKTtcclxuICAgIGF0dHJPZmZzZXQgPSBOU3RyaW5nLkluZGV4T2YoeG1sUGFyc2VyLmdldFhNTGRhdGEoKSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVJfQVRUUlMsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSwgY291bnQpO1xyXG4gICAgaWYgKGF0dHJPZmZzZXQgIT09IC0xKSB7XHJcbiAgICAgIC8vIGFkZCB0YWcgbGVuZ3RoIGFuZCBnZXQgdGhlIGF0dHJpYnV0ZVxyXG4gICAgICBhdHRyT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtQXR0ciA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuc3Vic3RyKGF0dHJPZmZzZXQsIDEpO1xyXG5cclxuICAgICAgLy8gbGVuZ3RoIG9mIHZhbHVlXHJcbiAgICAgIGxlbk9mZnNldCA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTiwgYXR0ck9mZnNldCk7XHJcbiAgICAgIGxlbk9mZnNldCArPSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTi5sZW5ndGggKyAxO1xyXG4gICAgICBsZW5PZmZzZXRFbmQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoXCIgXCIsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlTGVuID0gWG1sUGFyc2VyLmdldEludCh4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cihsZW5PZmZzZXQsIGxlbk9mZnNldEVuZCAtIGxlbk9mZnNldCkpO1xyXG5cclxuICAgICAgLy8gcGFyYW0gdmFsdWVcclxuICAgICAgdmFsdWVPZmZzZXQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1ZBTFVFLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtVmFsdWUgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cih2YWx1ZU9mZnNldCwgdmFsdWVMZW4pO1xyXG5cclxuICAgICAgLy8gZ2V0IGRhdGEgZm9yIHRoaXMgb2JqZWN0XHJcbiAgICAgIGN1cnJUeXBlID0gPFN0b3JhZ2VBdHRyaWJ1dGU+cGFyYW1BdHRyWzBdO1xyXG4gICAgICBjb3JyZWN0VmFsdWUgPSBSZWNvcmRVdGlscy5nZXRTdHJpbmcocGFyYW1WYWx1ZSwgY3VyclR5cGUpO1xyXG4gICAgICBpc051bGwgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vIHNraXAgdG8gYWZ0ZXIgdGhpcyBwYXJhbVxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KHZhbHVlT2Zmc2V0ICsgdmFsdWVMZW4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoeG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFTU9WRUQsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LkRFTEVURTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjdXJyVHlwZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICAgICAgaXNOdWxsID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci5Jbml0KGN1cnJUeXBlLCBpc051bGwsIGNvcnJlY3RWYWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuVE9VUFBFUjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgbWFuYWdlciBmb3IgZ2xvYmFsIHBhcmFtZXRlcnNcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEdsb2JhbFBhcmFtcyBleHRlbmRzIE1pcnJvclBybU1hcDxNaXJyb3JFeHBWYWw+IHtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBHbG9iYWxQYXJhbXMgPSBuZXcgR2xvYmFsUGFyYW1zKCk7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKE1pcnJvckV4cFZhbCk7XHJcbiAgICB0aGlzLm1pcnJvcmVkSUQgPSBDb25zdEludGVyZmFjZS5NR19UQUdfR0xPQkFMUEFSQU1TQ0hBTkdFUztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjcmVhdGUgYSBuZXcgTWlycm9yRXhwVmFsIGFuZCBhZGQgaXQgdG8gdGhlIG1hcFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBzZXQoczogc3RyaW5nLCB2OiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIGlmICh2LklzTnVsbCB8fCB2LmlzRW1wdHlTdHJpbmcoKSlcclxuICAgICAgc3VwZXIucmVtb3ZlKHMudHJpbSgpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBzdXBlci5zZXRWYWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpLCBuZXcgTWlycm9yRXhwVmFsKHYpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoczogc3RyaW5nKTogTWlycm9yRXhwVmFsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBzdXBlci5nZXR2YWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { XmlParser, StorageAttribute } from "@magic-xpa/utils";
|
|
3
|
-
import { DisplayConvertor } from "@magic-xpa/gui";
|
|
4
|
-
export class YesNoExp {
|
|
5
|
-
constructor(defaultVal) {
|
|
6
|
-
this._exp = null;
|
|
7
|
-
this._val = false;
|
|
8
|
-
this._val = defaultVal;
|
|
9
|
-
this._exp = null;
|
|
10
|
-
}
|
|
11
|
-
setVal(task, strVal) {
|
|
12
|
-
switch (strVal[0]) {
|
|
13
|
-
case 'Y':
|
|
14
|
-
this._val = true;
|
|
15
|
-
break;
|
|
16
|
-
case 'N':
|
|
17
|
-
this._val = false;
|
|
18
|
-
break;
|
|
19
|
-
default:
|
|
20
|
-
let expId = XmlParser.getInt(strVal);
|
|
21
|
-
if (task != null)
|
|
22
|
-
this._exp = task.getExpById(expId);
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
getVal() {
|
|
27
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
if (this._exp !== null)
|
|
29
|
-
return yield DisplayConvertor.toBoolean(yield this._exp.evaluateWithResultTypeAndLength(StorageAttribute.BOOLEAN, 0));
|
|
30
|
-
return this._val;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
isServerExp() {
|
|
34
|
-
if (this._exp != null)
|
|
35
|
-
return this._exp.computedByServerOnly();
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
isClientExp() {
|
|
39
|
-
if (this._exp != null)
|
|
40
|
-
return this._exp.computedByClientOnly();
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWWVzTm9FeHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9ZZXNOb0V4cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBT2hELE1BQU0sT0FBTyxRQUFRO0lBSW5CLFlBQVksVUFBbUI7UUFIdkIsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFPRCxNQUFNLENBQUMsSUFBVSxFQUFFLE1BQWM7UUFFL0IsUUFBUSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakIsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixNQUFNO1lBRVIsS0FBSyxHQUFHO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxLQUFLLEdBQVcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxJQUFJLElBQUksSUFBSTtvQkFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU07U0FDVDtJQUNILENBQUM7SUFLSyxNQUFNOztZQUNWLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO2dCQUNwQixPQUFPLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4SCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztLQUFBO0lBS0QsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO1lBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUtELFdBQVc7UUFFVCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtZQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7WG1sUGFyc2VyLCBTdG9yYWdlQXR0cmlidXRlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0Rpc3BsYXlDb252ZXJ0b3J9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuL0V4cHJlc3Npb25cIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBZZXNOb0V4cCBjbGFzcyByZXByZXNlbnQgYSBZZXMvTm8vRXhwcmVzc2lvbiBjb21iaW5hdGlvblxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgWWVzTm9FeHAge1xyXG4gIHByaXZhdGUgX2V4cDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRlZmF1bHRWYWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3ZhbCA9IGRlZmF1bHRWYWw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdmFsdWUgb2YgdGhlIFllcy9Oby9FeHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tcIj50aGUgdGFzayB0byBsb29rIGZvciBleHByZXNzaW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInN0clZhbFwiPnRoZSBzdHJpbmcgdGhhdCBjb250YWlucyB0aGUgWWVzL05vL0V4cHJlc3Npb248L3BhcmFtPlxyXG4gIHNldFZhbCh0YXNrOiBUYXNrLCBzdHJWYWw6IHN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgIHN3aXRjaCAoc3RyVmFsWzBdKSB7XHJcbiAgICAgIGNhc2UgJ1knOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdOJzpcclxuICAgICAgICB0aGlzLl92YWwgPSBmYWxzZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbGV0IGV4cElkOiBudW1iZXIgPSBYbWxQYXJzZXIuZ2V0SW50KHN0clZhbCk7XHJcbiAgICAgICAgaWYgKHRhc2sgIT0gbnVsbClcclxuICAgICAgICAgIHRoaXMuX2V4cCA9IHRhc2suZ2V0RXhwQnlJZChleHBJZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIFllcy9Oby9FeHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBnZXRWYWwoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5fZXhwICE9PSBudWxsKVxyXG4gICAgICByZXR1cm4gYXdhaXQgRGlzcGxheUNvbnZlcnRvci50b0Jvb2xlYW4oYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOLCAwKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRydWUgaWYgYW4gZXhwcmVzc2lvbiBleGlzdHMgYW5kIGl0IGlzIGEgc2VydmVyIHNpZGUgb25lXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBpc1NlcnZlckV4cCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9leHAgIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cC5jb21wdXRlZEJ5U2VydmVyT25seSgpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdHJ1ZSBpZiBhbiBleHByZXNzaW9uIGV4aXN0cyBhbmQgaXQgaXMgYSBjbGllbnQgc2lkZSBvbmVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGlzQ2xpZW50RXhwKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmICh0aGlzLl9leHAgIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cC5jb21wdXRlZEJ5Q2xpZW50T25seSgpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|